PHP online file sharing service
Find a file
2023-05-21 15:06:58 +02:00
files Version 1.1 : Ajout de la vérification par checksum qui permet de ne pas stocker 2 fois le même fichier, celui ci est juste 'mis en lien' 2023-05-21 15:06:58 +02:00
htmlPages Pas loin de la 0.1 2019-11-18 01:19:13 +01:00
lang Merge branch 'master' of https://framagit.org/kepon/file2link 2023-05-21 13:47:55 +02:00
lib Version 1.1 : Ajout de la vérification par checksum qui permet de ne pas stocker 2 fois le même fichier, celui ci est juste 'mis en lien' 2023-05-21 15:06:58 +02:00
munin Monitoring with munin 2020-06-16 10:13:54 +02:00
.gitignore Version 1.1 : Ajout de la vérification par checksum qui permet de ne pas stocker 2 fois le même fichier, celui ci est juste 'mis en lien' 2023-05-21 15:06:58 +02:00
.htaccess Pépite pour les URL rewrite qui ne fonctionnait pas avec le / à la fin 2022-03-29 16:03:38 +02:00
android-chrome-192x192.png Pas loin de la 0.1 2019-11-18 01:19:13 +01:00
android-chrome-512x512.png Pas loin de la 0.1 2019-11-18 01:19:13 +01:00
apple-touch-icon.png Pas loin de la 0.1 2019-11-18 01:19:13 +01:00
config.yaml.dist Version 1.1 : Ajout de la vérification par checksum qui permet de ne pas stocker 2 fois le même fichier, celui ci est juste 'mis en lien' 2023-05-21 15:06:58 +02:00
cron.php Petite correction de quentin 2021-02-28 15:33:52 +01:00
favicon-16x16.png Pas loin de la 0.1 2019-11-18 01:19:13 +01:00
favicon-32x32.png Pas loin de la 0.1 2019-11-18 01:19:13 +01:00
favicon.ico Pas loin de la 0.1 2019-11-18 01:19:13 +01:00
index.php Version 1.1 : Ajout de la vérification par checksum qui permet de ne pas stocker 2 fois le même fichier, celui ci est juste 'mis en lien' 2023-05-21 15:06:58 +02:00
jquery-file-upload.html V1.0 (check Readme.md) 2020-05-02 01:00:35 +02:00
my.php Checksum début d'implémentation 2023-05-21 12:13:29 +02:00
README.md Version 1.1 : Ajout de la vérification par checksum qui permet de ne pas stocker 2 fois le même fichier, celui ci est juste 'mis en lien' 2023-05-21 15:06:58 +02:00
robots.txt Pas loin de la 0.1 2019-11-18 01:19:13 +01:00
site.webmanifest Pas loin de la 0.1 2019-11-18 01:19:13 +01:00
upload.php Checksum début d'implémentation 2023-05-21 12:13:29 +02:00

file2link

PHP file sharing service free of rights (license Beerware) and free.

Demonstration : https://dl.zici.fr/

Requis

  • HTTP serveur htaccess compatible (url rewriting enable)
  • PHP 5.6 minimum
  • PHP GD lib
    • ImageMagick convert binary (option)
  • PHP PDO sqlite (no requir if check_checksum:false)
  • No nessecary database

Installation

Upload source content on you web server

Move config file :

mv config.yaml.exemple config.yaml

Change paramètre in config.yaml Make sure the consistency between:

  • maxUploadPerFile is similar to PHP config upload_max_filesize and post_max_size
  • maxUploadNb is similar to PHP config max_file_uploads

Make sure the "files" directory is writable

Crontab

By default the expired files this deletes with visits to the homepage. But you can delete them by cron job:

10	0	*	*	*	cd /var/www/dl.zici.fr/ && php /var/www/dl.zici.fr/cron.php

In config.yaml change

expireCron: web

to

expireCron: cli

Security

https://github.com/blueimp/jQuery-File-Upload/blob/master/SECURITY.md#secure-file-upload-serving-configurations

Changelog

  • futur
    • jQuery-File-Upload is deprecated
    • serveur disque use limit (check % space and disable upload if < X%)
    • drag and drop for upload
    • limit by ip+cookies (sqlite) (limit abuse)
    • crypt files
    • captcha / anti bot
    • "signaler un fichier"
    • mimeTypes restriction
  • 1.1
    • No upload file if exist on server, just link
      • required PDO sqlite
check_checksum: true
checksumDb: files/checksum.db
  • 1.0
    • jQuery-File-Upload implemented : https://github.com/blueimp/jQuery-File-Upload/
    • Resize image befor upload
    • Preview audio/video/image befor upload
    • Config add variable :
      • minUploadPerFile, acceptFileTypes, imageAutoOrient
      • Deprecated : mimeTypes restriction
    • Add on existent sharing
  • 0.2
    • Mod gallery if images
    • Passowrd for access
    • Delete after first access OR define nb access (10, 20...)
    • Bug Fix :
      • BUG day / days
      • BUG my files no work in html page
      • BUG delete file, but already in storage
    • MyFiles Rewrite
  • 0.1 (16/10/2019)
    • Configure with YAML file
    • Submit a file upload service with temporary link (Direct link, force download link, download multiple after zip)
    • Limit in time
    • Limit in number is possible
    • Limit on type of file (mime) is possible
    • Upload with progress bar in HTML5
    • Upload multi file
    • Multilingual (French / English)
    • Images resize possible
    • Find these files before uploader (local storage)
    • Housekeeping in files expired by cron job or by web traffic on the page
    • Personnalize content page with include header-page.php, header.php, footer-page.php, footer.php, start-home.php, end-home.php

Monitoring with munin

cd munin 
cp file2link_* /etc/munin/plugins/

On /etc/munin/plugin-conf.d/munin-node file, add your "files" dir :

 [...]
 
 [file2link_*]
     env.dir /var/www/dl.zici.fr/files

And restart munin node

/etc/init.d/munin-node restart

Licence

Beerware : https://en.wikipedia.org/wiki/Beerware

Crédit

Mime type icone : https://github.com/colorswall/CSS-file-icons
Icone : https://fontawesome.com Creative Commons Attribution 4.0 International license

Author

David Mercereau david #arobase# mercereau #point# info

Translation

  • oc : Quentin PAGÈS
    • fr/en : David Mercereau