4 Commits
2.6 ... offline

Author SHA1 Message Date
ner0
15fc685f96 Bring offline branch up to speed with master (#1037)
* publish additional docker tags (#975)

* Update Romanian translations (#981)

* Update tinyfilemanager.php

* Prevent logout issue after page was cached (#1004)

Logout may not work otherwise, browser reloads cached page from disk instead of sending GET request ?logout=1 to server.

* tell git to always commit .php in unix-newlines (#1017)

so hopefully we don't get a repeat of https://github.com/prasathmani/tinyfilemanager/pull/994#issuecomment-1502035505

* Check if posix_getpwuid/posix_getgrgid calls were successful (#1023)

* use stream_copy_to_stream (#1014)

* use stream_copy_to_stream

it's simpler, and should be faster.
For example, stream_copy_to_stream can use sendfile ( https://man7.org/linux/man-pages/man2/sendfile.2.html ) on operating systems supporting it, which is faster and use less RAM than fread()+fwrite() (because it avoids copying data to/from userland, doing the copy entirely in-kernel~)

* fix loop early return, and workaround bug

* use feof

ref https://github.com/prasathmani/tinyfilemanager/issues/1016#issuecomment-1502081506

* added bengali translation (#1018)

* Fix upload of existing files (#1026)

* Fix typo. (#1028)

* login (Redirecting to Main domain of website instead of tfm.php) fix (#1031)

When logged in it takes to the website's main URL. For example, if I have tfm in www.example.com/tfm/index.php (index.php is tfm) then after logging in it redirects to www.example.com and then have to press back on the browser then it takes to www.example.com/tfm/index.php

* Add configurable path display modes for better privacy and clarity (#1034)

* Resize preview image and implement zoom in/out (#1036)

* Resize preview image and implement zoom in/out

* Remove redundant class name

---------

Co-authored-by: ssams <6338356+ssams@users.noreply.github.com>
Co-authored-by: Sergiu Bivol <sergiu@cip.md>
Co-authored-by: Prasath Mani <prasathmani@users.noreply.github.com>
Co-authored-by: divinity76 <divinity76@gmail.com>
Co-authored-by: Micha Ober <github@ober-mail.de>
Co-authored-by: Joy Biswas <74253956+joybiswas007@users.noreply.github.com>
Co-authored-by: Micha Ober <git@ober-mail.de>
Co-authored-by: Caleb Mazalevskis <maikuolan@gmail.com>
Co-authored-by: xololunatic <97784387+xololunatic@users.noreply.github.com>
Co-authored-by: DannyDaemonic <DannyDaemonic@gmail.com>
2023-05-07 11:54:33 +05:30
Micha Ober
e179367cbc Fix filename for DataTables (#1024) 2023-04-21 10:04:14 +05:30
Prasath Mani
5738e8c164 Merge branch 'master' of https://github.com/prasathmani/tinyfilemanager into offline 2023-02-22 07:21:08 +05:30
Prasath Mani
6ae693b1fb Add 0FFL1NE support 2023-02-22 07:18:44 +05:30
23 changed files with 5381 additions and 2531 deletions

View File

@@ -12,7 +12,7 @@ FROM php:7.4-cli-alpine
# if run in China # if run in China
# RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories # RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
RUN apk add --no-cache \ RUN apk add \
libzip-dev \ libzip-dev \
oniguruma-dev oniguruma-dev

View File

@@ -7,11 +7,7 @@
[![Paypal](https://img.shields.io/badge/Donate-Paypal-lightgrey.svg?style=flat-square)](https://www.paypal.me/prasathmani) [![Paypal](https://img.shields.io/badge/Donate-Paypal-lightgrey.svg?style=flat-square)](https://www.paypal.me/prasathmani)
![GitHub Sponsors](https://img.shields.io/github/sponsors/prasathmani) ![GitHub Sponsors](https://img.shields.io/github/sponsors/prasathmani)
> TinyFileManager is a versatile web-based PHP file manager designed for simplicity and efficiency. This lightweight single-file PHP application can be effortlessly integrated into any server directory, allowing users to store, upload, edit, and manage files and folders directly through their web browser. > TinyFileManager is web based PHP file manager and it is a simple, fast and small size in single-file PHP file that can be dropped into any folder on your server, multi-language ready web application for storing, uploading, editing and managing files and folders online via web browser. The Application runs on PHP 5.5+, It allows the creation of multiple users and each user can have its own directory and a build-in support for managing text files with cloud9 IDE and it supports syntax highlighting for over 150+ languages and over 35+ themes.
With multi-language support and compatibility with PHP 5.5+, TinyFileManager enables the creation of individual user accounts, each with its dedicated directory. The platform also includes built-in functionality for handling text files using the Cloud9 IDE.
Featuring syntax highlighting for over 150 languages and more than 35 themes, TinyFileManager offers a comprehensive solution for file management in an online environment.
<sub>**Caution!** _Avoid utilizing this script as a standard file manager in public spaces. It is imperative to remove this script from the server after completing any tasks._</sub>
## Demo ## Demo
@@ -48,23 +44,81 @@ To enable/disable authentication set `$use_auth` to true or false.
### :loudspeaker: Features ### :loudspeaker: Features
- :cd: **Open Source:** Lightweight, minimalist, and extremely simple to set up. - :cd: Open Source, light and extremely simple
- :iphone: **Mobile Friendly:** Optimized for touch devices and mobile viewing. - :iphone: Mobile friendly view for touch devices
- :information_source: **Core Features:** Easily create, delete, modify, view, download, copy, and move files. - :information_source: Basic features likes Create, Delete, Modify, View, Download, Copy and Move files
- :arrow_double_up: **Advanced Upload Options:** Ajax-powered uploads with drag-and-drop support, URL imports, and multi-file uploads with extension filtering. - :arrow_double_up: Ajax Upload, Ability to drag & drop, upload from URL, multiple files upload with file extensions filter
- :file_folder: **Folder & File Management:** Create and organize folders and files effortlessly. - :file_folder: Ability to create folders and files
- :gift: **Compression Tools:** Compress and extract files in `zip` and `tar` formats. - :gift: Ability to compress, extract files (`zip`, `tar`)
- :sunglasses: **User Permissions:** User-specific root folder mapping and session-based access control. - :sunglasses: Support user permissions - based on session and each user root folder mapping
- :floppy_disk: **Direct URLs:** Easily copy direct URLs for files. - :floppy_disk: Copy direct file URL
- :pencil2: **Code Editor:** Includes Cloud9 IDE with syntax highlighting for 150+ languages and 35+ themes. - :pencil2: Cloud9 IDE - Syntax highlighting for over `150+` languages, Over `35+` themes with your favorite programming style
- :page_facing_up: **Document Preview:** Google/Microsoft document viewer for PDF/DOC/XLS/PPT, supporting previews up to 25 MB. - :page_facing_up: Google/Microsoft doc viewer helps you preview `PDF/DOC/XLS/PPT/etc`. 25 MB can be previewed with the Google Drive viewer
- :zap: **Security Features:** Backup capabilities, IP blacklisting, and whitelisting. - :zap: Backup files and IP blacklist and whitelist
- :mag_right: **Search Functionality:** Use `datatable.js` for fast file search and filtering. - :mag_right: Search - Search and filter files using `datatable js`
- :file_folder: **Customizable Listings:** Exclude specific folders and files from directory views. - :file_folder: Exclude folders and files from listing
- :globe_with_meridians: **Multi-language Support:** Translations available in 35+ languages with `translation.json`. - :globe_with_meridians: Multi-language(32+) support and for translations `translation.json` is file required
- :bangbang: **And Much More!** - :bangbang: lots more...
### [Deploy by Docker](https://github.com/prasathmani/tinyfilemanager/wiki/Deploy-by-Docker) ## Deploy by Docker
Make sure you have **already installed docker**, [Install reference](https://docs.docker.com/engine/install/)
> **Notice:** Your need an absolute path, and it will be served by tinyfilemanager.
>
> If you want to serve this project at **raspberry pi or another special platform**, you can download project and **build image by yourself**.
You can execute this following commands:
```shell
$ docker run -d -v /absolute/path:/var/www/html/data -p 80:80 --restart=always --name tinyfilemanager tinyfilemanager/tinyfilemanager:master
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
648dfba9c0ff tinyfilemanager/tinyfilemanager:master "docker-php-entrypoi…" 4 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp tinyfilemanager
```
Access `http://127.0.0.1/` and enter default username and password, then enjoy it.
DockerHub: [https://hub.docker.com/r/tinyfilemanager/tinyfilemanager](https://hub.docker.com/r/tinyfilemanager/tinyfilemanager)
#### How to change config within docker
Origin:
```php
// Root path for file manager
// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder'
$root_path = $_SERVER['DOCUMENT_ROOT'];
// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder'
// Will not working if $root_path will be outside of server document root
$root_url = '';
```
Modified:
```php
// Root path for file manager
// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder'
$root_path = $_SERVER['DOCUMENT_ROOT'].'/data';
// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder'
// Will not working if $root_path will be outside of server document root
$root_url = 'data/';
```
Then, change another config what you want, and add a new volume `-v /absolute/path/index.php:/var/www/html/index.php` in `docker run` command, like this:
```shell
$ docker run -d -v /absolute/path:/var/www/html/data -v /absolute/path/index.php:/var/www/html/index.php -p 80:80 --restart=always --name tinyfilemanager tinyfilemanager/tinyfilemanager:master
```
#### Stop running
If you want to stop a running docker service, or you want to restart a service, you should stop it first, or you got `docker: Error response from daemon: Conflict. The container name "/tinyfilemanager" is already in use by container ...` problem. You can execute this command:
```shell
$ docker rm -f tinyfilemanager
```
### <a name=license></a>License, Credit ### <a name=license></a>License, Credit

View File

@@ -4,7 +4,7 @@
The team takes security bugs seriously. We appreciate your efforts to responsibly disclose your findings, and will make every effort to acknowledge your contributions. The team takes security bugs seriously. We appreciate your efforts to responsibly disclose your findings, and will make every effort to acknowledge your contributions.
To report a security issue, email ccpprogrammers[at]gmail[dot]com and include the word "SECURITY" in the subject line. To report a security issue, email ccpprogrammers[at]gmail.com and include the word "SECURITY" in the subject line.
The team will send a response indicating the next steps in handling your report. After the initial reply to your report you will be kept informed of the progress towards a fix and full announcement. The team will send a response indicating the next steps in handling your report. After the initial reply to your report you will be kept informed of the progress towards a fix and full announcement.

File diff suppressed because one or more lines are too long

7
assets/css/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

1
assets/css/dropzone.min.css vendored Normal file

File diff suppressed because one or more lines are too long

4
assets/css/font-awesome.min.css vendored Normal file

File diff suppressed because one or more lines are too long

1
assets/css/vs.min.css vendored Normal file
View File

@@ -0,0 +1 @@
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#fff;color:#000}.hljs-comment,.hljs-quote,.hljs-variable{color:green}.hljs-built_in,.hljs-keyword,.hljs-name,.hljs-selector-tag,.hljs-tag{color:#00f}.hljs-addition,.hljs-attribute,.hljs-literal,.hljs-section,.hljs-string,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type{color:#a31515}.hljs-deletion,.hljs-meta,.hljs-selector-attr,.hljs-selector-pseudo{color:#2b91af}.hljs-doctag{color:grey}.hljs-attr{color:red}.hljs-bullet,.hljs-link,.hljs-symbol{color:#00b0e8}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

17
assets/js/ace.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

7
assets/js/bootstrap.bundle.min.js vendored Normal file

File diff suppressed because one or more lines are too long

22
assets/js/datatables.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
assets/js/dropzone.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1361
assets/js/highlight.min.js vendored Normal file

File diff suppressed because one or more lines are too long

2
assets/js/jquery-3.6.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
{ {
"appName": "Tiny File Manager", "appName": "Tiny File Manager",
"version": "2.6", "version": "2.5.1",
"language": [ "language": [
{ {
"name": "Română", "name": "Română",
@@ -1512,9 +1512,7 @@
"Moved from": "Movido de", "Moved from": "Movido de",
"Created": "Criado", "Created": "Criado",
"You are logged in": "Você está logado", "You are logged in": "Você está logado",
"Login failed. Invalid username or password": "Falha na autenticação. nome de usuário ou senha inválidos", "Login failed. Invalid username or password": "Falha na autenticação. nome de usuário ou senha inválidos"
"Are you sure want to rename?": "Tem certeza de que deseja renomear?",
"Are you sure want to": "Tem certeza de que deseja"
} }
}, },
{ {
@@ -2534,14 +2532,14 @@
"Operations with archives are not available": "Bewerkingen met archieven zijn niet beschikbaar", "Operations with archives are not available": "Bewerkingen met archieven zijn niet beschikbaar",
"File or folder with this path already exists": "Bestand of map met dit pad bestaat al", "File or folder with this path already exists": "Bestand of map met dit pad bestaat al",
"Moved from": "Verplaatst van", "Moved from": "Verplaatst van",
"a files": "bestanden", "a files": "bestanden",
"Okay": "OK", "Okay": "OK",
"Enter here...": "Voer hier in...", "Enter here...": "Voer hier in...",
"Enter new file name": "Voer nieuwe bestandsnaam in:", "Enter new file name": "Voer nieuwe bestandsnaam in:",
"Full path": "Volledig path", "Full path": "Volledig path",
"File size": "Bestandsgrootte", "File size": "Bestandsgrootte",
"Image sizes": "Afbeeldingsgrootte", "Image sizes": "Afbeeldingsgrootte",
"Charset": "Karakterset", "Charset": "Karakterset",
"Image": "Afbeelding", "Image": "Afbeelding",
"Audio": "Audio", "Audio": "Audio",
"Video": "Video", "Video": "Video",
@@ -2549,18 +2547,16 @@
"Files in archive": "Bestanden in archief", "Files in archive": "Bestanden in archief",
"Total size": "Totale grootte", "Total size": "Totale grootte",
"Compression": "Compressie", "Compression": "Compressie",
"Size in archive": "Grootte in archief", "Size in archive": "Grootte in archief",
"Invalid Token.": "Ongeldig token", "Invalid Token.": "Ongeldig token",
"Fullscreen": "Volledig scherm", "Fullscreen": "Volledig scherm",
"Undo": "Ongedaan maken", "Undo": "Ongedaan maken",
"Redo": "Opnieuw doen", "Redo": "Opnieuw doen",
"Theme": "Thema", "Theme": "Thema",
"Select Theme": "Kies thema", "Select Theme": "Kies thema",
"Select Font Size": "Kies fontgrootte", "Select Font Size": "Kies fontgrootte",
"Are you sure want to rename?": "Weet u zeker dat u de naam wilt wijzigen?", "Are you sure want to rename?": "Weet u zeker dat u de naam wilt wijzigen?",
"Are you sure want to": "Verder gaan met", "Are you sure want to": "Verder gaan met"
"dark": "donker",
"light": "licht"
} }
}, },
{ {
@@ -2812,4 +2808,4 @@
} }
} }
] ]
} }