1
0
mirror of https://github.com/prasathmani/tinyfilemanager.git synced 2025-07-09 19:36:19 +02:00

181 Commits
2.2.0 ... 2.4.7

Author SHA1 Message Date
7103691048 Fix - typo error #641 2022-02-12 13:54:22 +05:30
85821736c0 Update version 2022-02-12 13:48:19 +05:30
e474ade92b Client IP behind proxy (#665)
Function added for IP filtering when the filemanager is hosted behind a web proxy.

I've added a function for this to the file, not sure how else to implement it since everything is one file.
2022-02-12 13:28:26 +05:30
ad30a3a1f3 Add Global Readonly (#158)
Added a global readonly variable that will force readonly mode both when
not using the auth system and for all users if the auth system is being
used.

Co-authored-by: Prasath Mani <prasathmani@users.noreply.github.com>
2022-02-12 13:22:56 +05:30
bb1d1d3801 added name of the file being edited (#542)
added name of the file being edited and a back button in a better location
2022-02-12 13:17:35 +05:30
c3a2f1d604 Chunked file upload (#714)
Removes any PHP or server-side file-upload limits by using file chunks
2022-02-12 13:16:07 +05:30
154947ef83 apply fix to path traversal vulnerability (#718)
Co-authored-by: João Maurício <joao.goncalves.mauricio@pwc.com>
2022-02-12 10:34:05 +05:30
bc9096fad3 Update translation.json (#708)
Improved Romanian translation.
2022-01-28 07:44:37 +05:30
3d28d8cb8e Update tinyfilemanager.php (#707)
Changed "Folder is empty" message to be language-specific.
2022-01-28 07:43:56 +05:30
9b85951cfc fix "400 bad request" when saving files (#705) 2022-01-21 08:06:27 +05:30
d125c6736b Add Romanian language (#690)
* Add Romanian language

Add Romanian language w/o diacrytics!
Traducere & adaptare in limba romana fara diacritice!

* Fix typo's
2021-12-21 17:45:58 +05:30
f8d4d9cb17 added Dutch translation (#686)
* added Dutch translation

* fix typo
2021-12-21 11:01:36 +05:30
08cb4b0fce Fix a non well formatted numeric value encountered & Notice: Undefined offset in fm_get_filesize() (#681)
For non `well formatted numeric value encountered`, see #670
For `Notice: Undefined offset 9` (current implementation result) see: https://3v4l.org/1qHit#v5.0.0
For new impementation result, see: https://3v4l.org/d0UBh#v5.0.0
2021-12-13 10:15:09 +05:30
95d41a9518 Just a little fix with missing " in button HTML (#675)
Its a little html fix- its about 1787 line- the class value it not closed.
```
<button type="button" class="btn btn-sm btn-outline-primary name="Save"
```
changed to:

```
<button type="button" class="btn btn-sm btn-outline-primary" name="Save"
```
2021-12-03 07:16:32 +05:30
6bdc5ccfb3 Update Indonesian translations (#668) 2021-11-22 09:03:41 +05:30
2046bbde72 Patched the RCE (#636)
I have patched the file upload directory traversal to Authenticated Remote Code Execution Vulnerability.
2021-11-12 08:31:02 +05:30
c1718ff4c5 Vietnamese translation update (#629)
I have updated the Vietnamese translation under the code "vi" to be more complete.
2021-09-18 09:59:08 +05:30
1db6713019 fix: document docker image name. (#622) 2021-09-05 08:47:26 +05:30
c89e1d18de Update README.md 2021-09-03 11:30:25 +05:30
d401028eb6 Update README.md 2021-09-03 11:18:41 +05:30
f6ac9cc63f Update README.md 2021-09-03 11:14:46 +05:30
a22edfca00 feat: add Dockerfile and auto publish. (#619) 2021-09-03 11:13:23 +05:30
55706b2f8b Adding a Slovenian translation (#614)
I added a Slovenian translation under the code "sl" and the name "Slovensko".
2021-08-09 20:06:08 +05:30
09e2b9a107 Fix saving of empty files (#612)
When you have a file without content, for example when you cleared you were unable to save it because of an incorrect if-statement. This is the fix for that problem.
2021-08-06 07:43:22 +05:30
9ee41b14d6 Added some missing translations (#608) 2021-08-02 10:39:37 +05:30
8158333d93 Update tinyfilemanager.php (#568)
fm_get_file_mimes() was causing errors for unknown extensions as it was causing an error as array element was not defined and return value was never checked.  According to https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types and several other resources,  application/octet-stream is the default value for all other cases. An unknown file type should use this type.   I put a check in there to use that by default so a valid value is always returned.

It might be useful to replace this function with the  built-in PHP function mime_content_type() but that adds some additional dependencies as it does not always work out of the box with PHP.
2021-06-05 11:57:53 +05:30
e843adcf0b Fix function name and add extensions for icons (#567)
* Set icons for more file extensions

* Fix function name
2021-06-05 08:33:57 +05:30
f182e378e3 PHP8 fix and few other changes (#562) 2021-06-01 10:11:15 +05:30
27d7126767 Typo error fix #548 2021-05-17 15:05:46 +05:30
a62bb38773 PR update and sync 2021-05-17 12:22:16 +05:30
603f048722 Fix PHP 5.X (#494)
Arrays cannot be used in "define" functions with PHP versions lower than 7.X
Solution given via my professional account (ArlorNaturalScientific)
2021-05-17 11:59:34 +05:30
442843239c 🌐 Update Korean translation (#496) 2021-05-17 11:58:53 +05:30
b63615a4b8 French translation: sort and complete (#497)
* French - Apply alpha order

* Add missing translations

* Fix missing help
2021-05-17 11:58:19 +05:30
9d78ee8b01 I added the Hungarian language (translation.json) (#509)
I added support for the Hungarian language.
2021-05-17 11:57:50 +05:30
9b5d2718ab New translations (#537)
New translations

Novas Traduções
2021-05-17 11:55:47 +05:30
a38d8e3934 Portuguese, with new translations (#538)
Portuguese, with new translations

Português, Com novas traduções
2021-05-17 11:55:02 +05:30
db3f4c01ea Added in preferences light or dark theme (#539)
Added in the preferences option to change the light or dark theme,

Now to change the theme will be in the preferences / settings area, along with other settings, and may even have other themes in the future.
2021-05-17 09:24:45 +05:30
c5d481c5cc Fixed Rename with folder quotes (#534)
Fixed the Rename functionality to work with folders that contain single quotes in them by calling `addslashes` on the path.
2021-04-30 05:57:10 +05:30
a04567d3ba Fix security issues #525 and #526 2021-04-22 13:41:35 +05:30
03c3f6d7f9 Fixed 3 sinks which caused XSS in filename (#511)
Co-authored-by: Vaibhav Shinde <vaibhavkshinde20@gmail.com>
2021-03-22 18:26:55 +05:30
95147f5828 remove decoded php codes and code cleanup 2021-02-24 13:33:57 +05:30
dd9d7c09a2 Feat/mixed changes (#502)
* remove trailing whitespace

Signed-off-by: ccdd13 <78702084+ccdd13@users.noreply.github.com>

* safe include config.php with __DIR__

* replace doc url for $datetime_format from function.date.php to datetime.format.php

Signed-off-by: ccdd13 <ccdd13@users.noreply.github.com>

* put $auth_users & $readonly_users together

Signed-off-by: ccdd13 <ccdd13@users.noreply.github.com>

* update $datetime_format

Signed-off-by: ccdd13 <ccdd13@users.noreply.github.com>

Co-authored-by: ammm ccdd12 <mamok43076@dashseat.com>
Co-authored-by: ccdd13 <ccdd13@users.noreply.github.com>
2021-02-24 12:37:38 +05:30
a19ff20768 Update vendor CDN versions 2021-02-23 11:47:57 +05:30
b03232775e Added Finnish translation (#486)
Co-authored-by: Jani Kiviranta <jani.kiviranta@hoop.fi>
2021-01-19 06:37:00 +05:30
ef09231454 Fix file size display in file viewer (#475) 2020-12-23 20:46:00 +05:30
6b06fb2532 Norwegian translation[NO] (#474) 2020-12-22 10:52:43 +05:30
2512330dee Update Indonesia translation (#435) 2020-12-06 10:11:21 +05:30
642cab42cc Update German translation (#447) 2020-12-06 10:10:36 +05:30
c03e601bc3 Update translation.json (#451) 2020-11-11 09:48:26 +05:30
0d0e728c79 Update italian translation (#440) 2020-10-23 05:01:18 +05:30
530055df08 Add: Mongolian (cyrillic) language added. (#422)
Co-authored-by: Davaadorj.U <davaadorju@gmail.com>
2020-09-10 19:57:23 +05:30
5d841d6624 Update russian translation (#414)
* fix(ru): fix russian translation

* style(ru): sort russian translation alphabetically

* feat(ru): update russian translation
2020-08-26 03:57:06 +05:30
211568ff4c fix(actions): creating a backup in FM_ROOT_PATH (#418) 2020-08-26 03:55:13 +05:30
44bedb9be0 Update Catalan translation (#410)
* Update translation.json

Update Catalan translation

* Update translation.json

* Update translation.json

* Update translation.json
2020-08-12 07:20:14 +05:30
c8fff90634 fix: prevent double write to file (#409) 2020-08-04 14:00:05 +05:30
a6a28a6356 Fix sorting by date and size (#387)
Based on suggestions in https://github.com/prasathmani/tinyfilemanager/issues/197
but uses data-sort attribute (from DataTable wiki https://datatables.net/examples/advanced_init/html5-data-attributes.html) instead of invisible characters and also distinguishes files and folders, so they stay grouped even after sort.
(I am sorry for my bad English.)
2020-07-20 05:39:47 +05:30
14ed4fdb92 Update french translation (#392)
I corrected the french translation
2020-07-20 05:38:12 +05:30
65f7dc448d Fixes #183, Fixes #289 (#400)
Fixes setting drop down boxes to the current ace editor mode and theme on page load.
2020-07-20 05:37:41 +05:30
fb31a14873 Added Error Message When File Fails to Write (#399)
Added error checking and message for when file fails to write on the server side.  Before this change if a write failed on the server side it would still present the user with a misleading "Saved Successfully" Message.
2020-07-20 05:36:47 +05:30
c741ae2212 Notice: A non well formed numeric value encountered (#386)
Eliminates the following PHP warnings when error reporting is turned on:

Notice: A non well formed numeric value encountered in tinyfilemanager.php on line 2443
Notice: A non well formed numeric value encountered in tinyfilemanager.php on line 2444

This happens because PHP floor and round are expecting a (float), not an (int).
2020-06-27 16:02:09 +05:30
e118d650a3 Correct wrong word in Vietnamese language. (#381)
Co-authored-by: JHuyVu <jhuyvu@gmail.com>
2020-06-21 08:25:28 +05:30
c260601ef6 Czech translation update (#368)
Added missing expressions and corrected a few inaccuracies.
2020-06-06 06:09:26 +05:30
462566a31b Remove duplicate code block (#377) 2020-06-02 19:27:37 +05:30
0a92002919 if exist include config.php #366 2020-05-24 17:07:17 +05:30
1dbe7c5339 dark mode #352
Request: Dark mode option in the admin section. #260
2020-05-24 14:00:27 +05:30
8fb1816877 Create a new session if permission denied on current one (#331)
In a multi-user configuration, the current session file can be unreadable
by the current user. This tries to create a new session in this case.
2020-05-24 08:51:44 +05:30
5903849388 Added Optional configuration file (#338)
* Added optional configuration file loading

* First commit of optional configuration file

This file is OPTIONAL.
If this file is not present in your webserver, tinyfilemanager will works with its internal configuration.

* removed define

define is not a configuration
2020-05-24 08:50:49 +05:30
0826838917 Add support user customized config file (if exists) (#242)
* feat(/): add support user customized config file (if exists)

* Show current process ID in Status bar + Make fm_get_filesize function much more concise (#245)

* Update Simplified Chinese (#241)

* Feature Font Size Choose Options / Bug Fix Settings not visible in auth=false (#240)

* Bug fix and PR #245, #241, #240

Co-authored-by: 刘明野 <898310895@qq.com>
Co-authored-by: B Bharath Kumar Reddy <39063133+bbharathkumarreddy@users.noreply.github.com>
Co-authored-by: Prasath Mani <prasath.mani@publicissapient.com>
Co-authored-by: Prasath Mani <prasathmani@users.noreply.github.com>
2020-05-24 08:50:25 +05:30
a0c595a8e1 Security fix #357
Download file causes timeout #353
Download Restart @ 88% #312
download large file issues #259
File upload issue #354
FIle Upload URL error #360
Bug in .tar archive extraction when destination(s) file(s) already exist (HTTP error 500) #332
Backup File return false #201
2020-05-18 13:37:02 +05:30
1482e41f74 fix settings are not saved. (#361) 2020-05-18 09:45:54 +05:30
dcdf736e48 Add Japanese Translation (#359) 2020-05-16 17:10:03 +05:30
43eb8016d3 Update SECURITY.md 2020-05-14 08:57:29 +05:30
e2ac1163c2 Update SECURITY.md 2020-05-14 08:57:12 +05:30
2f357ee3d5 Fix translation error (#349) 2020-04-29 12:35:19 +05:30
5933952fa4 Add Korean translations (#347) 2020-04-28 06:00:07 +05:30
1ca011ca67 Added duplicate functionality (#146)
* Added duplicate functionality

* Updated functionality to also duplicate folders

* Merged copy & duplicate buttons
2020-03-23 19:31:44 +05:30
e259ffda4d Update tinyfilemanager.php (#327) 2020-03-20 07:55:51 +05:30
e8fc6d546a fix "Archive not created" error (#317)
fix "Archive not created" error while trying to create Tar archive
2020-03-12 12:48:19 +05:30
1501835f61 Update tinyfilemanager.php (#309)
Login box stays middle on small screens
2020-02-24 11:39:53 +05:30
c991555de5 Avoid accessing undefined $_POST['file'] index (#308)
I don't know when this occurs, but I have this entry in my web server log:
 PHP Notice:  Undefined index: file in tinyfilemanager.php on line 1165
2020-02-18 22:46:21 +05:30
9e3877270b Advanced Search
Mouse hover image preview
Upload error handling
Thumbnail view for folders containing images #283
How to search inside folders. #282
Search bar with regex matching #140
Subfolder Search Feature #132
2020-01-14 17:57:32 +05:30
0319b7b102 feat(/): add live image preview when user hovers the image file name (only when the number of files in current folder less than 500 files) (#244)
Co-authored-by: Prasath Mani <prasathmani@users.noreply.github.com>
2020-01-14 17:44:52 +05:30
4905e5c61c Adds Slovak translation (#279) 2020-01-09 13:12:01 +05:30
8b21009a47 Fix tiny typo (#276) 2020-01-06 07:46:43 +05:30
b8b859a1fd Update README.md 2020-01-01 20:12:17 +05:30
339c26168c Update FUNDING.yml 2020-01-01 16:28:09 +05:30
1c86942097 Redesign login screen, Removed remember me checkbox, Security vulnerability fix #270, User role have Preview and Search option #265, #222 2019-12-29 10:30:23 +05:30
9a499734c5 Merge pull request from GHSA-w72h-v37j-rrwr
* Fix the RCE vuln via Upload from URL

This commit attemps to fix the Remote Code Execution
(authenticated) via Upload from URL. Some notes about
the proposed solution:

* A new function (fm_is_file_allowed) has been created to
validate if the filename is allowed. This function gets the
the filename as parameter and returns true if it validates
as allowed. Otherwise returns false (the default).

* It's better to have such validatation(s) in one place
instead of spread all over the code. There are other places in
the application where the filename is validated and they should
all be refactored to call this function. Then we can focus
all needed validations in one place only!

NOTE: This refactoring was not done - the only goal was to fix
this security vulnerability only.

* The fm_is_file_allowed() function validates the filename
based on its extension only. No other validatation(s) have been
implemented in this commit.

* File extensions are assumed to be case-insensitive.
For example, php == PHP == Php == PhP, etc. This is consitent
with some web servers. Without this, the user will have to populate
the $allowed_extensions with all possible allowed combinations.

* Although, there is one drawback to the current solution, which
is that all files must have an extension to be uploaded. This is not
consitent with modern filesystems. Maybe a better solution would be
to automatically append an extension to the filename if no
extension has been found (e.g., .html or .txt which are generally
considered to be harmless). This must be decided by the
application's maintainers.

* Fix the RCE vulns via new/rename file

Sanitize the arguments to stat using escapeshellarg()

Co-authored-by: Jorge Morgado <jorge@morgado.ch>
2019-12-28 19:23:47 +05:30
1eac82f55a Create SECURITY.md 2019-12-27 21:41:49 +05:30
c2938925d8 Turkish language support (#269) 2019-12-27 11:42:02 +05:30
b84fdbf008 Compatible with macOS (#258) 2019-12-27 11:39:52 +05:30
7c376df205 Fix for search function not working if "$hide_Cols=true" on non-Windows systems (#267)
Setting $hide_Cols=true while having FM_IS_WIN=false will lead to a "Type error" when setting up the dataTable. The desired page is generated, but the Search function does not work, as the dataTable is broken.

With this fix the dataTable is written accordingly, with either FM_IS_WIN or $hide_Cols set or unset.
2019-12-20 14:50:57 +05:30
7a7a44de9b Open document files? #262 2019-12-06 16:26:36 +05:30
3e19ba0243 No message / status / information when saving edited file #257 and when saving an edit show a warning ( alert ) #213 2019-11-29 12:26:25 +05:30
bf8b715c13 Notice Error. #252 2019-11-15 12:21:31 +05:30
4a8bd014af Bug fix and PR #245, #241, #240 2019-11-05 16:50:15 +05:30
a5b2b459cd Feature Font Size Choose Options / Bug Fix Settings not visible in auth=false (#240) 2019-11-05 16:32:25 +05:30
4f2eecc108 Update Simplified Chinese (#241) 2019-11-05 16:31:29 +05:30
13e130c29f Show current process ID in Status bar + Make fm_get_filesize function much more concise (#245) 2019-11-05 16:27:57 +05:30
57ac3391e5 Fixed help links (#238) 2019-10-04 12:44:05 +05:30
29ca36a18b Missing select all feature ? #234 2019-10-01 16:20:30 +05:30
c76a3a2fc5 Updated new version vendor cdn links and Fixed - Bug when filename contains a space at the beginning #198 2019-09-24 18:17:09 +05:30
0cb8ad86a5 Update README.md 2019-09-23 10:23:10 +05:30
567fcb6a25 Adding the Persian language by Max Base (#217)
Add Persian, Farsi Language. (فارسی)
Max Base, Asrez Team
2019-09-03 11:25:21 +05:30
4353cc7378 Remove duplicate and format file 2019-08-24 14:55:20 +05:30
a0a7ceeea0 Add +PT (#208) 2019-08-24 14:49:28 +05:30
73abdcdaad echo "Folder" (#209)
{ echo "Folder"; } > { echo lng('Folder'); }
2019-08-23 08:12:57 +05:30
059c70e05e Update tinyfilemanager.php (#206)
FastCGI sent in stderr: "PHP message: PHP Warning:  Use of undefined constant online_viewer - assumed 'online_viewer' (this will throw an Error in a future version of PHP) in /www/admin/index.php on line 1383
2019-08-22 11:26:32 +05:30
8b6a984864 Merge branch 'master' of https://github.com/prasathmani/tinyfilemanager 2019-07-31 09:39:31 +05:30
c18051dd5b File upload error: uppercase and strtolower() #202 2019-07-31 09:39:02 +05:30
d593cefde7 Create FUNDING.yml 2019-07-27 09:42:10 +05:30
b6f552a79c Cannot edit aspx File #200 2019-07-26 17:07:57 +05:30
3114fa92e3 Some language strings are missing. And other... #192
view file is insecure #187
Get files size (recursive) #186
There is no possibility for translation for some hints (title =) #185
View dirSize instead of word "Folder" #184
Document type detection #183
Stored Cross-site Scripting (XSS) Vulnerability detected in File Names #180
strings in code #177
Remove tracking #164
2019-07-23 12:56:01 +05:30
21094a66ee Fix spelling of "copyied" after copying file (#196)
Should be "copied".
2019-07-23 09:42:22 +05:30
5386b89aaf Update tinyfilemanager.php (#194) 2019-07-23 09:42:00 +05:30
b579489148 Update translation.json (#193)
Please add Czech translation
2019-07-23 09:41:13 +05:30
9131db13a7 Updated italian translation (#182)
Added also "Move" that was missing in the file.
2019-07-23 09:40:47 +05:30
8d40ebcdd7 Improve Multilanguage Support (#179)
* Add Arabic Translation

* add some keywords and handling Fixed keywords [untranslated]

* add new translation words

* improve existing translation words
2019-07-23 09:40:26 +05:30
ea29092aea Add Save by ajax request (#175)
Add Save by ajax request, Instead of saving it to a post request and reloading the page each time.
2019-07-23 09:39:00 +05:30
1696ebf0fc IP whitelisting and/or blacklisting #171
Add Microsoft Office online view option #169
2019-05-19 12:31:49 +05:30
ffc34859cc Add Hebrew Language (#174)
Add Hebrew Language
2019-05-19 11:13:58 +05:30
9d472720a9 Add Arabic Translation (#176) 2019-05-19 11:10:56 +05:30
498804f8a5 Basic IP white- and blacklisting (#178) 2019-05-19 11:10:20 +05:30
4b4b48242e PHP Warning: count() #173 2019-05-13 15:59:02 +05:30
f67a343f48 When uploading it doesnt override, insteads it crates a new filename #172
Add Custom Title and Favicon options #156
2019-05-13 15:48:29 +05:30
f956ae3abc Add Custom Title and Favicon options (#156)
Added variables so the admin can set a custom title and favicon.
2019-05-07 15:13:37 +05:30
7a9730dfe1 Added .MKV format support and minor ui changes, #163. 2019-05-03 16:47:35 +05:30
62e58a6597 add vietnamese language (#162) 2019-05-03 12:40:36 +05:30
0c5ee15ea3 Update translation.json (#151) 2019-05-03 12:38:45 +05:30
ae971c8b99 Fix for path traversal vulnerability, reported by - @hhc0null/Hiroki MATSUKUMA 2019-04-03 17:20:23 +05:30
b546ac168e Add Polish language (#150) 2019-04-03 17:12:55 +05:30
285b6b4882 Provide "previous" and "next" to navigate between previews #145
Cross site scripting (XSS) #141
RegEx error | function template #134
2019-03-28 17:06:42 +05:30
a8c2fc66d6 prevent overwriting if uploaded file already exists #138,
IE11 aborts upload after 30s #137
2019-03-13 12:26:25 +05:30
622264042a Negative filesize on ARMv7 for files over 2GB #127
Max file size? #96
2019-03-03 15:30:47 +05:30
bb0e61787c Merge branch 'master' of https://github.com/prasathmani/tinyfilemanager 2019-02-28 15:35:40 +05:30
da31717cff Negative filesize on ARMv7 for files over 2GB #127
Simplified Chinese translation #125
Max file size? #96
2019-02-28 15:35:28 +05:30
1b9e0f5e76 Português language added (#126) 2019-02-18 14:59:29 +05:30
e0cc54b286 Add Simplified Chinese support (#122)
* Add Simplified Chinese support

And distinguish it from Traditional Chinese.

* Add two fields for translation.

* Add two fields for translation.

* Translated.
2019-01-28 22:24:05 +05:30
7a0de24a61 Fix : User's sub folder problem #120 2019-01-20 17:02:01 +05:30
1a24dc0729 Merge branch 'master' of https://github.com/prasathmani/tinyfilemanager 2019-01-18 17:12:35 +05:30
2a390b2247 down file error when larger than php memory limited #110 and Not looking good on phones #93 2019-01-18 17:12:20 +05:30
292c00d62f Merge pull request #119 from karavidas/master
Greek laguage added
2019-01-17 18:42:16 +05:30
30aa3e6f96 Update translation.json 2019-01-17 15:11:03 +02:00
200f56e8d4 Greek laguage added 2019-01-17 12:35:43 +02:00
09f688c625 Saving settings doesn't save #116 2019-01-17 12:34:54 +05:30
f26977adb3 Default Languages loading issue fix 2019-01-10 16:23:02 +05:30
704bec368f Merge pull request #115 from adit/patch-1
added Indonesia Language
2019-01-06 20:17:09 +05:30
6970bdb7dd add indonesia lang. 2019-01-06 21:37:40 +07:00
8802b048b3 Added Version Check
Added new Translation JSON file
New languages added - Spanish, German, Thailand and Chinese
Removed languages from tinyfilemanager.php file
Updated IDE languages and themes
2019-01-06 16:59:02 +05:30
e38f312ce5 Merge pull request #112 from jopiortiz/spanish-lang
Spanish Language
2019-01-06 15:44:22 +05:30
125e35ed83 Merge branch 'master' into spanish-lang 2019-01-06 15:44:09 +05:30
bf64ae9593 Merge pull request #100 from mrwan200/master
Add Thai Language
2019-01-06 15:41:59 +05:30
98902b6b80 Merge branch 'master' into master 2019-01-06 15:41:38 +05:30
380a6f2877 Merge pull request #104 from emilengler/master
Add German language
2019-01-06 15:39:46 +05:30
373d04b2ef Crear , looks better 2019-01-04 01:03:30 -03:00
c7708f371f Spanish Language
- Minor fix on the Search input placeholder
2019-01-04 00:32:28 -03:00
ba9826fe9c Added check latest version 2018-12-31 14:36:03 +05:30
221bc96882 Added Partition size and Memory used #111 2018-12-25 21:48:41 +05:30
acf1958350 Merge pull request #111 from alecos71/patch-12
Added Memory Used
2018-12-25 20:15:37 +05:30
90c079882d improved memory usage + added translations
improved memory usage + added translations
2018-12-25 15:11:20 +01:00
c22e694e7d improved memory usage
improved memory usage
2018-12-25 14:32:03 +01:00
8f9da1cb5e Added Memory Used
Added Memory Used
2018-12-25 14:12:58 +01:00
c413573952 Improve embed and UI issues 2018-12-22 14:51:06 +05:30
89fb960679 Modified UI - Pwd change 2018-12-14 01:20:25 +05:30
fb7c4fcebd Modified UI - file upload from url #98 and Code refactor 2018-12-14 00:02:25 +05:30
1760168933 Modified Readme 2018-12-13 00:40:23 +05:30
9fdfdbfe94 Added - file upload from url #98
Fix: issues to rename files with single quote #105
Fix: Dropzone default timeout 30 seconds #102, #96, #75
Fix:  XSS cross-site attack screen (Chrome) #101
2018-12-13 00:38:16 +05:30
876282d006 Add German language 2018-12-10 18:22:24 +01:00
f7240516ca Update tinyfilemanager.php 2018-12-09 09:39:33 +07:00
1a9bf95920 Fix: Not looking good on phones #93 2018-12-06 12:51:29 +05:30
9eda119235 Added Editor Toolbar - Themes, Document Mode, Search, Fullscreen, Undo, Redo, ... 2018-12-03 23:58:25 +05:30
1ca5add891 Added Russian Language 2018-12-02 14:49:04 +05:30
4f40e85604 Fix: Not looking good on phones #93 2018-12-01 13:58:28 +05:30
39bec20b7e Fix: undefined constant password_verify #87 and #92, #91 2018-12-01 08:43:24 +05:30
8113184b12 Merge pull request #90 from alecos71/patch-9
fixed $tr['en'] with $tr['it']
2018-11-30 09:48:10 +05:30
479a4a873d Added language entry in list
Added language entry in list
2018-11-29 19:40:24 +01:00
7f1258c050 fixed $tr['en'] with $tr['it']
Fixed Italian language
2018-11-29 19:20:44 +01:00
b995d781fb Merge pull request #89 from simon511000/patch-1
Update tinyfilemanager.php
2018-11-29 22:20:57 +05:30
c1b8bfd6ad Update tinyfilemanager.php 2018-11-29 17:31:57 +01:00
81f6c81aa8 Merge pull request #88 from alecos71/patch-8
Update tinyfilemanager with Italian Language
2018-11-29 21:37:33 +05:30
0c0d9e24b8 Update tinyfilemanager.php
Added Italian language
2018-11-29 16:06:41 +01:00
8 changed files with 4349 additions and 963 deletions

6
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,6 @@
# These are supported funding model platforms
patreon: ccpprogrammers
open_collective: tinyfilemanager
ko_fi: tinyfilemanager
custom: ['https://paypal.me/prasathmani']

38
.github/workflows/PublishDocker.yml vendored Normal file
View File

@ -0,0 +1,38 @@
name: PublishDocker
on:
push:
branches:
- 'master'
tags:
- '**'
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: |
${{ secrets.DOCKERHUB_USERNAME }}/tinyfilemanager
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
push: true
tags: ${{ steps.meta.outputs.tags }}

32
Dockerfile Normal file
View File

@ -0,0 +1,32 @@
# how to build?
# docker login
## .....input your docker id and password
#docker build . -t tinyfilemanager/tinyfilemanager:master
#docker push tinyfilemanager/tinyfilemanager:master
# how to use?
# docker run -d -v /absolute/path:/var/www/html/data -p 80:80 --restart=always --name tinyfilemanager tinyfilemanager/tinyfilemanager:master
FROM php:7.4-cli-alpine
# if run in China
# RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
RUN apk add \
libzip-dev \
oniguruma-dev
RUN docker-php-ext-install \
zip \
mbstring \
iconv \
fileinfo
WORKDIR /var/www/html
COPY tinyfilemanager.php index.php
COPY config-sample.php config.php
RUN sed -i "s/\$root_path =.*;/\$root_path = \$_SERVER['DOCUMENT_ROOT'].'\/data';/g" config.php && \
sed -i "s/\$root_url = '';/\$root_url = 'data\/';/g" config.php
CMD ["sh", "-c", "php -S 0.0.0.0:80"]

145
README.md
View File

@ -1,30 +1,28 @@
# Tiny File Manager
[![Live demo](https://img.shields.io/badge/Live-Demo-brightgreen.svg?style=flat-square)](https://tinyfilemanager.eu-gb.mybluemix.net/Demo/)
[![Live demo](https://img.shields.io/badge/Help-Docs-lightgrey.svg?style=flat-square)](https://tinyfilemanager.github.io/)
[![Live demo](https://img.shields.io/badge/Live-Demo-brightgreen.svg?style=flat-square)](https://tinyfilemanager.github.io/demo/)
[![Live demo](https://img.shields.io/badge/Help-Docs-lightgrey.svg?style=flat-square)](https://github.com/prasathmani/tinyfilemanager/wiki)
[![GitHub Release](https://img.shields.io/github/release/qubyte/rubidium.svg?style=flat-square)](https://github.com/prasathmani/tinyfilemanager/releases)
[![GitHub License](https://img.shields.io/github/license/prasathmani/tinyfilemanager.svg?style=flat-square)](https://github.com/prasathmani/tinyfilemanager/blob/master/LICENSE)
[![Beerpay](https://beerpay.io/prasathmani/tinyfilemanager/badge.svg?style=flat-square)](https://beerpay.io/prasathmani/tinyfilemanager)
> It is a simple, fast and small file manager with single php file. It is also a web code editor. It'll run either online or locally, on Linux, Windows or Mac based platforms. The only requirement is to have PHP 5.5+ available.
[![GitHub License](https://img.shields.io/github/license/prasathmani/tinyfilemanager.svg?style=flat-square)](https://github.com/prasathmani/tinyfilemanager/blob/master/LICENSE)
[![Paypal](https://img.shields.io/badge/Donate-Paypal-lightgrey.svg?style=flat-square)](https://www.paypal.me/prasathmani)
> TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, 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.
## Demo
[Demo](https://tinyfilemanager.eu-gb.mybluemix.net/Demo/)
Login Details : admin/admin@123 | user/12345
[Demo](https://tinyfilemanager.github.io/demo/)
## Documents
<a href="https://tinyfilemanager.github.io/" target="_blank">tinyfilemanager.github.io</a>
<hr>
## Documentation
<img src="screenshot.gif" alt="H3K | Tiny File Manager">
Tinyfilemanager is highly documented on the [wiki pages](https://github.com/prasathmani/tinyfilemanager/wiki).
[![Tiny File Manager](screenshot.gif)](screenshot.gif)
## Requirements
- PHP 5.5.0 or higher.
- [Zip extension](http://php.net/manual/en/book.zip.php) for zip and unzip actions.
- Fileinfo, iconv and mbstring extensions are strongly recommended.
- Fileinfo, iconv, zip, tar and mbstring extensions are strongly recommended.
## How to use
@ -33,51 +31,98 @@ Download ZIP with latest version from master branch.
Just copy the tinyfilemanager.php to your webspace - thats all :)
You can also change the file name from "tinyfilemanager.php" to something else, you know what i meant for.
Default username/password: admin/admin@123 and user/12345.
Default username/password: **admin/admin@123** and **user/12345**.
Warning: Please set your own username and password in `$auth_users` before use. password is encrypted with <code>password_hash()</code>. to generate new password hash <a href="https://tinyfilemanager.github.io/docs/pwd.html" target="_blank">here</a>
:warning: Warning: Please set your own username and password in `$auth_users` before use. password is encrypted with <code>password_hash()</code>. to generate new password hash [here](https://tinyfilemanager.github.io/docs/pwd.html)
To enable/disable authentication set `$use_auth` to true or false.
### Supported constants:
- `FM_ROOT_PATH` - default is `$_SERVER['DOCUMENT_ROOT']`
- `FM_ROOT_URL` - default is `'http(s)://site.domain/'`
- `FM_SELF_URL` - default is `'http(s)://site.domain/' . $_SERVER['PHP_SELF']`
- `FM_ICONV_INPUT_ENC` - default is `'CP1251'`
- `FM_USE_HIGHLIGHTJS` - default is `true`
- `FM_HIGHLIGHTJS_STYLE` - default is `'vs'`
- `FM_DATETIME_FORMAT` - default is `'d.m.y H:i'`
- `FM_EXTENSION` - default is `""` //upload files extensions
:information_source: Rename the `config-sample.php` file into `config.php` to use configuration, it is an additional configuration file, Feel free to remove completely this file and configure "tinyfilemanager.php" as a single file application.
### :loudspeaker: Features
<ul>
<li>:cd: Open Source, light and extremely simple</li>
<li>:iphone: Mobile friendly view for touch devices</li>
<li>:information_source: Basic features likes Create, Delete, Modify, View, Download, Copy and Move files </li>
<li>:arrow_double_up: Ajax Upload, Ability to drag & drop, multiple files upload and file extensions filter </li>
<li>:file_folder: Ability to create folders and files</li>
<li>:gift: Ability to compress, extract files (zip, tar)</li>
<li>:sunglasses: Support user permissions - based on session and each user root folder mapping</li>
<li>:floppy_disk: Copy direct file URL</li>
<li>:pencil2: Edit text formats file using advanced editor</li>
<li>:page_facing_up: Google Drive viewer helps you preview PDF/DOC/XLS/PPT/etc. 25 MB can be previewed with the Google Drive viewer</li>
<li>:zap: Backup files</li>
<li>:mag_right: Search - Search and Sorting using datatable js</li>
<li>:file_folder: Exclude folders from listing</li>
<li>:globe_with_meridians: Multi-language support (English, French)</li>
<li>:bangbang: lots more...</li>
</ul>
- :cd: Open Source, light and extremely simple
- :iphone: Mobile friendly view for touch devices
- :information_source: Basic features likes Create, Delete, Modify, View, Quick Preview, Download, Copy and Move files
- :arrow_double_up: Ajax Upload, Ability to drag & drop, upload from URL, multiple files upload with file extensions filter
- :file_folder: Ability to create folders and files
- :gift: Ability to compress, extract files (`zip`, `tar`)
- :sunglasses: Support user permissions - based on session and each user root folder mapping
- :floppy_disk: Copy direct file URL
- :pencil2: Cloud9 IDE - Syntax highlighting for over `150+` languages, Over `35+` themes with your favorite programming style
- :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: Backup files and IP blacklist and whitelist
- :mag_right: Search - Search and filter files using `datatable js`
- :file_folder: Exclude folders and files from listing
- :globe_with_meridians: Multi-language(20+) support and for translations `translation.json` is file required
- :bangbang: lots more...
## 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
**Important!!!** First, you can copy `config-sample.php` to `config.php`, and must modify this following config
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/config.php:/var/www/html/config.php` in `docker run` command, like this:
```shell
$ docker run -d -v /absolute/path:/var/www/html/data -v /absolute/path/config.php:/var/www/html/config.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
- Available under the [GNU license](https://github.com/prasathmani/tinyfilemanager/blob/master/LICENSE)
- Original concept and development by github.com/alexantr/filemanager
- CDN Used - jQuery, Bootstrap, Font Awesome, Highlight js, ace js, DropZone js, DataTable js
- CDN Used - _jQuery, Bootstrap, Font Awesome, Highlight js, ace js, DropZone js, ekko-lightbox js, and DataTable js_
- To report a bug or request a feature, please file an [issue](https://github.com/prasathmani/tinyfilemanager/issues)
- We hope our tools will be helpful for you. If you find Tiny File Manager useful for your personal or commercial projects, Help me out for a couple of
[![Beerpay](https://beerpay.io/prasathmani/tinyfilemanager/badge.svg?style=flat-square)](https://beerpay.io/prasathmani/tinyfilemanager)
- [Contributors](https://github.com/prasathmani/tinyfilemanager/wiki/Authors-and-Contributors)

27
SECURITY.md Normal file
View File

@ -0,0 +1,27 @@
# Security Policy
## Reporting a Vulnerability
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.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.
Report security bugs in third-party modules to the person or team maintaining the module.
## Disclosure Policy
When the security team receives a security bug report, they will assign it to a
primary handler. This person will coordinate the fix and release process,
involving the following steps:
* Confirm the problem and determine the affected versions.
* Audit code to find any potential similar problems.
* Prepare fixes for all releases still under maintenance. These fixes will be
released as fast as possible to npm.
## Comments on this Policy
If you have suggestions on how this process could be improved please submit a
pull request.

123
config-sample.php Normal file
View File

@ -0,0 +1,123 @@
<?php
/*
#################################################################################################################
This is an OPTIONAL configuration file. rename this file into config.php to use this configuration
The role of this file is to make updating of "tinyfilemanager.php" easier.
So you can:
-Feel free to remove completely this file and configure "tinyfilemanager.php" as a single file application.
or
-Put inside this file all the static configuration you want and forgot to configure "tinyfilemanager.php".
#################################################################################################################
*/
// Auth with login/password
// set true/false to enable/disable it
// Is independent from IP white- and blacklisting
$use_auth = true;
// Login user name and password
// Users: array('Username' => 'Password', 'Username2' => 'Password2', ...)
// Generate secure password hash - https://tinyfilemanager.github.io/docs/pwd.html
$auth_users = array(
'admin' => '$2y$10$/K.hjNr84lLNDt8fTXjoI.DBp6PpeyoJ.mGwrrLuCZfAwfSAGqhOW', //admin@123
'user' => '$2y$10$Fg6Dz8oH9fPoZ2jJan5tZuv6Z4Kp7avtQ9bDfrdRntXtPeiMAZyGO' //12345
);
// Readonly users
// e.g. array('users', 'guest', ...)
$readonly_users = array(
'user'
);
// Enable highlight.js (https://highlightjs.org/) on view's page
$use_highlightjs = true;
// highlight.js style
// for dark theme use 'ir-black'
$highlightjs_style = 'vs';
// Enable ace.js (https://ace.c9.io/) on view's page
$edit_files = true;
// Default timezone for date() and time()
// Doc - http://php.net/manual/en/timezones.php
$default_timezone = 'Etc/UTC'; // UTC
// 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 = '';
// Server hostname. Can set manually if wrong
$http_host = $_SERVER['HTTP_HOST'];
// user specific directories
// array('Username' => 'Directory path', 'Username2' => 'Directory path', ...)
$directories_users = array();
// input encoding for iconv
$iconv_input_encoding = 'UTF-8';
// date() format for file modification date
// Doc - https://www.php.net/manual/en/datetime.format.php
$datetime_format = 'd.m.y H:i:s';
// Allowed file extensions for create and rename files
// e.g. 'txt,html,css,js'
$allowed_file_extensions = '';
// Allowed file extensions for upload files
// e.g. 'gif,png,jpg,html,txt'
$allowed_upload_extensions = '';
// Favicon path. This can be either a full url to an .PNG image, or a path based on the document root.
// full path, e.g http://example.com/favicon.png
// local path, e.g images/icons/favicon.png
$favicon_path = '';
// Files and folders to excluded from listing
// e.g. array('myfile.html', 'personal-folder', '*.php', ...)
$exclude_items = array('');
// Online office Docs Viewer
// Availabe rules are 'google', 'microsoft' or false
// google => View documents using Google Docs Viewer
// microsoft => View documents using Microsoft Web Apps Viewer
// false => disable online doc viewer
$online_viewer = 'google';
// Sticky Nav bar
// true => enable sticky header
// false => disable sticky header
$sticky_navbar = true;
// max upload file size
$max_upload_size_bytes = 5000;
// Possible rules are 'OFF', 'AND' or 'OR'
// OFF => Don't check connection IP, defaults to OFF
// AND => Connection must be on the whitelist, and not on the blacklist
// OR => Connection must be on the whitelist, or not on the blacklist
$ip_ruleset = 'OFF';
// Should users be notified of their block?
$ip_silent = true;
// IP-addresses, both ipv4 and ipv6
$ip_whitelist = array(
'127.0.0.1', // local ipv4
'::1' // local ipv6
);
// IP-addresses, both ipv4 and ipv6
$ip_blacklist = array(
'0.0.0.0', // non-routable meta ipv4
'::' // non-routable meta ipv6
);
?>

File diff suppressed because one or more lines are too long

2234
translation.json Normal file

File diff suppressed because it is too large Load Diff