]> git.mxchange.org Git - simple-upload.git/blobdiff - README.md
Function names should be like someFoo() as by a very common naming
[simple-upload.git] / README.md
index 6fbef7545c3420778373db172f884e18405715b7..4e87b68e331521671adda75896a64d2100c951c7 100644 (file)
--- a/README.md
+++ b/README.md
@@ -2,7 +2,15 @@
 
 Simple single-file PHP file upload (file share hosting) script.
 
-> :warning: **Security warning**: There is no limit on file size or file type. Please make sure that file permissions are set right so nobody can execute uploaded executables. Or exscape your desired directory!
+> :warning: **Security warning**: There is no limit on file size or file type. Please make sure that file permissions are set right so nobody can execute uploaded code. See [server configuration](#server-configuration) for examples.
+
+## TODO
+
+- [x] Delete files
+- [x] Private files
+- [x] Sort by age
+- [x] Auto-remove old files
+- [ ] AJAX Uploader
 
 ## Installation
 
@@ -12,22 +20,88 @@ Just drop a PHP file in any directory. It will work straight away
 
 There are few options that you can change by editing the file itself:
 
-- `$settings['uploaddir'] = '.';`
-       Directory to store the uploaded files. Defaults to rurrect script directory
 
-- `$settings['listfiles'] = true;`
-       Option that will list all files in uploads directory. Enabled by default
+- Directory to store uploaded files
+
+       `uploaddir` => `'.'`
+
+- Display list uploaded files
+
+       `listfiles` => `true`
+
+- Allow users to delete files that they have uploaded (will enable sessions)
+
+       `allow_deletion` => `true`
+
+- Display file sizes
+
+       `listfiles_size` => `true`
+
+- Display file dates
+
+       `listfiles_date` => `true`
+
+- Display file dates format
+
+       `listfiles_date_format` => `'F d Y H:i:s'`
+
+- Randomize file names (number of 'false')
+
+       `random_name_len` => `4`
+
+- Keep filetype information (if random name is activated)
+
+       `random_name_keep_type` => `true`
+
+- Random file name letters
+
+       `random_name_alphabet` => `'qwertyuiopasdfghjklzxcvbnm'`
+
+- Display debugging information
+
+       `debug` => `($_SERVER['SERVER_NAME'] === 'localhost')`
 
 ## Usage options
 
-- Through interface:
-       - Click on upload message
-       - HTML5 Drag'and'Drop (via dropzone.js)
-       - No Javascript HTML Form fallback
+- Through an interface:
+       - Choose files via dialogue
+       - Drop files, via HTML5 drag'and'drop (using [dropzone.js](http://www.dropzonejs.com/))
+       - Basic HTML Form (if no JavaScript is suported)
 - Upload using any compatible tool (like cURL)
 
        This example will upload a file and copy URL to clipboard:
-       
+
        ```bash
-       curl -F "file=@$(pwd)/file.jpg" http://yoir-host/sharing/ > xclip -sel clip
+       curl -F "file[]=@file.jpg" strace.club | xclip -sel clip
        ```
+
+## Server configuration
+
+Do not allow uploaded code execution!
+
+### NGINX configuration example
+
+Edit the NGINX configuration file (`/etc/nginx/sites-enabled/fileuploader`):
+
+       server {
+               listen 80 default_server;
+               listen [::]:80 default_server ipv6only=on;
+
+               root /usr/share/nginx;
+               index index.php;
+
+               server_name localhost;
+
+               location / {
+                       try_files $uri $uri/ =404;
+               }
+
+               error_page 404 /index.php;
+
+               location /index.php {
+                       fastcgi_split_path_info ^(.+\.php)(/.+)$;
+                       fastcgi_pass unix:/var/run/php5-fpm.sock;
+                       fastcgi_index index.php;
+                       include fastcgi_params;
+               }
+       }