Giter Site home page Giter Site logo

filez's Introduction

FileZ provides a Web service to upload and manage files you want to share through a web interface and unique URLs (http). It was inspired by the perl/mod_perl application filex.

Project Status

FileZ was created by the Avignon University and is developed by people like you.

Please join us and report your issues, edit our wiki, translate, fork and commit your code!

File list Upload Form Install Form

Features

  • PHP/Mysql or PHP/Sqlite with the Limonade PHP Framework
  • Several authentication scheme : CAS+LDAP, LDAP only, BDD.
  • short URL (ex: filez.univ-avignon.fr/x42ni1)
  • Upload progress bar (with non obstructive javascript)
  • Install form & admin backend
  • i18n
  • Password protected files
  • Email notifications
  • CRON task
  • Quota

More informations on the wiki and at http://gpl.univ-avignon.fr/filez.

Requirement

  • Apache configured with “mod_rewrite” and the “AllowOverride” of your virtual host set to “FileInfo Options” or “All” (important !) a2enmod rewrite && apache2ctl restart

  • To display a progress bar during the upload process you will need one of the following package installed on your system :

    • APC

      apt-get install php-apc
      echo "apc.rfc1867 = On"   >> /etc/php5/apache2/conf.d/apc.ini
      apache2ctl restart
      
    • PECL::UploadProgress

      apt-get install php5-dev
      pecl install uploadprogress
      echo "extension = uploadprogress.so" >> /etc/php5/apache2/conf.d/uploadprogress.ini
      apache2ctl restart
      
  • You will need php5-curl and php5-dom to be able to authenticate against a CAS server

  • You will need php5-ldap to be able to identicate with a LDAP server

Installation

  • Download FileZ sources :

    • from Git

      git clone git://github.com/FileZ/FileZ.git filez_web_root
      
    • from SVN

      svn checkout http://svn.github.com/FileZ/FileZ.git filez_web_root
      
    • from a package

      tar -xvvf filez-2.0.tar.gz
      cp filez-2.0/* filez_web_root
      
  • Open your web browser on your FileZ web root and run the installation. Check the FAQ on our wiki.

  • Enjoy!

filez's People

Contributors

almaghi avatar arnaudd avatar ekacnet avatar eliovir avatar fannyny avatar fortunto2 avatar ianbogda avatar jalexandre avatar jmanteau avatar mcnetic avatar olarriga avatar psycofdj avatar rdir avatar thomas-riccardi avatar wla avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

filez's Issues

Create an upgrade script

On each page load, compare source version and db version and execute the database migration scripts if necessary

Add skin support

Actualy skin modification is very limited :

  • a css option
  • a logo option
  • some bottom links configuration

To change more the skin we are forced to hack the files in various place like in

  • /app/view/layout (to change header or footer)
  • /resources/image (to change the default images/icon set)
  • /resources/jquery.ui/ (to change the jqueryui skin)

There is also no right defined default place to put the personal logo and css.

Actualy, if we mess during skining we may brake the program.
So a "skin" folder with the skinabale part inside and a default skin for fallback would be use full.

The other option is to add more skin options :

  • display or not the Filez logo and slogan
  • add one or more personal links in the footer
  • choice of the JqueryUi skin
  • a icon set directory option

Update .htacess wih a php5 options sections

For Filez to work correctly there are some php options to set :
file_uploads
memory_limit
upload_max_filesize
post_max_size
max_input_time
max_execution_time

The install script check for most of them but the doc ask to change them in php.ini.
A change in php.ini mean a server change for all the php applications.
The other option is to add a specific section in the .htacess file for example :

<IfModule mod_php5.c>
file_uploads On
php_value upload_max_filesize 700M
php_value post_max_size 700M
php_value max_input_time 1200
php_value max_execution_time 1200
</IfModule>

Improve and pusblish source code documentation

FileZ should adopt some code documentation guidelines. It could take example on Web application projects such as WordPress, Drupal or others.
1/ every file should start with a short description, then a long description. So that you don't have to read the code to know what it does.

Examples:

This would help newcomers in reading FileZ code. (Something such as this or this helps the immediate overview of the code. (no need to download or setup a dev environnement, just browse html pages))

Erreur LDAP : Unable to bind to server: Invalid DN syntax

Je n'arrivais pas à me connecter à Filez. Voici le message d'erreur dans "filez-error.log" :

Error (Warning) ldap_bind() [function.ldap-bind]: Unable to bind to server: Invalid DN syntax in /var/www/html/internet/filez/lib/Zend/Ldap.php:849

Après lecture de la documentation Zend,
http://files.zend.com/help/Zend-Framework/zend.auth.adapter.ldap.html

j'ai ajouté une ligne au fichier "filez.ini" :
bindRequiresDn = "true"

Depuis ça fonctionne parfaitement.

CAS + Filtre LDAP personnalisé

jfr sur [email protected]

"accountFilterFormat=”(&(objectClass=posixAccount)(uid=%s)(ur1TypeEntree=pers))

Internal Server Error 
0x20: No object found for: (&(objectClass=posixAccount)(uid=xxxxxxx)(ur1TypeEntree=pers))"

Un message d'erreur tel que "Vous n'êtes pas autorisé à utiliser cette application" serait mieux toutefois"

Automatic CRON

Remove the need to configure a real CRON command. The CRON URL will be called from an HTML page, each X [hours|days]

config ignored if section doesn't exists in default config

For example section auth_options.

Proposed patch:

# git diff
diff --git a/lib/fz_config.php b/lib/fz_config.php
index 1724649..c53aac1 100644
--- a/lib/fz_config.php
+++ b/lib/fz_config.php
@@ -57,7 +57,7 @@ function merge_config ($user, $default) {
         $result [$section] = (array_key_exists ($section, $user) ?
             array_merge ($default[$section], $user[$section]) : $default[$section]);
     }
-    return $result;
+    return $result + array_diff_key ($user, $default);
 }
 
 /**

Add the possibility to configure the automatic emails

Actualy the automatic email texts are set in the languages files.

So if someone whant to adapt the automatic emails to his structure, he his
forced to change the .po file and to recompile the .mo file. The other option
his to hack the script and remove internationalisation for this mails.

For example if i simply want to change the [FileZ] title tag to [MyLaboratory]
i have to hack.

it would be usefull to keeps the default messages in the langage files, but alos to add
an option to set user defined messages.

Allow unlimited lifetime

FileZ is made to share files during a limited time. Anyway can it be extended to allow to configure FileZ for unlimited file lifetime?

With a config such as:
max_file_lifetime = "unlimited"
max_extend_count = "unlimited"

German translation

I'll have a german translation ready soon. How can I send you the po-file?
Maybe I will push it to my fork of this project.

caractère tronqué avec "envoyer par mail en utilisant ma messagerie"

Bonjour,

Nous testons le filez stable.

Il m'a été montré que , dans le mail initial envoyé au propriétaire du fichier
déposé,l'adresse du lien a son dernier caractere tronqué.

Par exemple:
Vous pouvez télécharger le fichier que j'ai envoyé ici :
http://filez.xxxxx.fr/5s23y

Alors qu'il s'agit du fichier
http://filez.xxxxx.fr/5s23ym

Quand je lui fais me renvoyer le lien via la fonction "envoyer par email", c'est par contre ok

Add mime types support

If the admin want to block the upload of some file type like videos, executables or audio, the mime types support must be first integrated in FileZ. (This may be later an option in the admin interface)

Alternaly, this can also be used to display file type icons based on the mime type.

Move the config from filez.ini to the database

Filez config will be stored in the database in order to be easily changed from a form in the admin backend. filez.ini will only contain database config and optionnaly LDAP settings, which will simplify the install process.

TODO :

  • create a table fz_config
  • create Config model class
  • create a Config controller
  • modify index.php to load the config from fz_config
  • update the fz_config_get function to use the config from the database

Important :

  • It should be possible to store tree-like structure in the config (for LDAP failover for exemple)

URL pour telecharger un fichier : FDQN non positionné

bonjour,

Je suis confronté au problème suivant :

Dans ma config réseau, j'ai la recherche DNS suivante : domain.com.
Mon service filez est déclaré dans le DNS via filez.

Sur le LAN, si j'ouvre une session avec simplement http://filez, j'accède bien au site. L'URL générée est alors http://filez/eejf7E9.

SI ce lien est alors envoyé à un correspondant extérieur, il lui est alors impossible de récupérer le lien car la résolution DNS ne se fait pas, le nom de domain n'apparaissant pas.

Ou alors il y a un possible paramétrage dans le httpd.conf pour faire en sorte que lorsqu"on tape serveur, automatiquement l'url positionné dans le navigateur soit serveur.domain.com.

Il faudrait pouvoir fixer, dans le fichier filez.ini, le FQDN ou l'URL permettant de récupérer le fichier à télécharger. On peut par exemple avoir un FDQN different entre le LAN et le WAN.

Pour l'instant, je ne peux donc ouvrir le service à l'extérieur.

merci,

There is no cancel upload event

An user may want to cancel an upload during the progress.

Normaly to do this il will propably use the close-box of the upload modal dialog.
But there is not cancel upload event associated with this close box, so even if the modal dialog is closed during an upload, the upload still continue.

In short, this will be usefull :

  • a cancel event associated with the close box
  • maybe a big "cancel" buton whoi will appear after the begining od an upload
  • an "are your sure dialog ?" in case of this event

Administrative backend

  • Display list of uploaded filez
    • possibility to delete some files
  • Display basic stats : users quota, total size of the uploaded files
  • Create users (if the users are stored in the filez db)

Always SSL : problem with upload

Hi,

With
https = "always"

A strange problem appears : all seems ok, but uploading a file bigger than ~750Mo will stay stuck...

Multiples tries give me files stuck with different size, so i think there is a time-out somewhere in with SSL...

I try upgrade Apache setting SSLSessionCacheTimeout with no luck...

Internal database auth

Hi,

I want to use internal database auth to try Filez in a simple configuration but I can't find any clue in document how to use it.

I've ceated a user table in the filez database with username & password fields, added a user with sha1 password, so I pass the configuration step but can't login with this user...

Can you tell us more about this feature? or perhaps I've missed something somewhere!

Thanks for your help.

regards,
Thierry

Authentification via un serveur LDAP Oracle failed

bonjour,

j'ai installé la dernière version. Installation sans problème sur une RHEL 5. Super travail.

Toutefois, impossible de m'authentifier sur un annuaire LDAP OID Oracle.

J'ai le message d'erreur suivant, mais ne suis pas certain qu'il soit relié à l'échec de l'authentification :

[2010-08-04 15:02:36] [192.168.1.86] Error (Warning) strftime(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/html/filez/lib/fz_log.php:39

[root@vana8715-6 ~]# date
mer aoû 4 08:52:56 CEST 2010

[root@vana8715-6 lib]# cat -n fz_log.php |grep 39
39 $message = '['.strftime ('%F %T').'] '

Ce problème peut-il être la cause de l'"chec del'authrntification ?

merci,

lv

upload problem

Hi arnaud !

each upload i have thi error in filez's log :

[2010-07-29 16:47:27] [95.174.179.89] exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '18446744073709551615' for key 1' in /var/www/dl/lib/Fz/Db/Table/Row/Abstract.php:216
Stack trace:

i don't know why !!!

Can you help me ?

P.S : i'm french so i f you want answer to me in french, i prefer ! lol

Add a session timeout option

I am not sure about it, but apparently there is not time-out for open users sessions

It will be usefful to set a default timeout (like 30 minutes) and allow to change this time out in the config file.

antivirus support

I need to add clamav support to FileZ before deploying it at the Faculty of Enginner - University of Pisa. I read in the TODO you are planning to do it, so, if you already started working on it I'll be happy to give some help in coding/debugging, otherwise if you have any hint, or suggestions/desires about the implementation, I'll be grateful if you would like to share it. Obviously, any code will be submitted as a patch to FileZ.

Retrouver un hash

Bonjour,

Est-il possible de logguer les hash correspondants aux fichiers ? Je n'ai pas trouvé l'info...

Dans filez.log on trouve bien "Saved blablabla[247259242494140] uploaded by [email protected]"

Donc on a le nom du fichier, son id, la personne l'ayant uploadé, mais pas son hash !

Or pour retrouver qui a uploadé tel fichier correspondant à tel lien, on ne dispose que du hash....

PHP Fatal error: Call to undefined function json_encode

bonjour,

Je suis en train d'installer filez sur un serveur de production après des tests.

je suis sur une Redhat RHEL 5.2
php 5.1.6
httpd 2.2.3

J'ai un problème d'affichage après l'authentification. Je perds en effet complètement la mise en page.
L 'affichage se fait sous une forme html brute. Cela reste fonctionnel, mais l'ergonomie et le visuel a complètement disparu.

J'ai l'erreur suivante dans les logs :

[Wed Sep 01 15:36:49 2010] [error] [client 192.168.1.86] PHP Notice: Use of undefined constant E_RECOVERABLE_ERROR - assumed 'E_RECOVERABLE_ERROR' in /Apache/www/html/filez/lib/limonade.php on line 842, referer: http://filez.domain.fr/login
[Wed Sep 01 15:36:54 2010] [error] [client 192.168.1.86] PHP Fatal error: Call to undefined function json_encode() in /Apache/www/html/filez/app/views/main/index.php on line 88, referer: http://filez.domain.fr/login

A noter que la mise en place de filez avec sur une plateforme de test et php 5.3.2 ne m'a pas posé de soucis.

Je peux difficilement upgrader le php sur le serveur actuel, qui est un serveur de prod avec pas mal d'applis web.

merci,

Add the possibility to block certain users

With Ldap support, all user can use Filez, but there are case where we want to forbid certains users (guest, nobody, etc).

In this case there must have an option to block a defined list or users and/or user with no mail defined.
This feature may be dependant of admin interface if user management is planed in this interface.

Upload size limit not well displayed

Actualy i have set an upload limit to 700Mo but, in the send file windows, it's said than the limit is 734Mo.

There is probably a misccalculation somewere.

Quota is not updated after a file upload

Actualy, just after a file upload the user quota is not updated. To update it the user must reload the page.

An option would be to force a reload of all the page, or just use javascript to recalculate que quoata after an upload.

Refactor user management

Filez 2.2 possèdera une table d'utilisateurs qui sera éventuellement synchronisée avec une source externe (LDAP, ou BD d'une application tierce).

Upload invitations

Allow filez users to create an invitation for someone else to upload ONE file.

Somewhere on the page (?) will be a link available to genuine filez user only, to allow them to create an invitation. The creation process will require them to enter informations about the invited user (name, email).

Filez will then send an email to the invited user containing unique URL (ex: filez.domain/invitation/sdf12DSK139NSsdns89 ) which will be valid until a file is uploaded.

This URL will allow him to log in filez without password until the link has expired.

Once the invited user has upload a file, the invitation link will be invalidated and the user logged out. The user who created the invitation will be notified (?).

Available configuration :

  • max_invitation_per_user
  • invitation_lifetime (in days)

TODO :

  • Create a fz_invitation table with the following column : id, code, invited_user, created_by, created_at expire_at
  • update the CRON check to purge expired invitation
  • ... next later

File size limit check is done during upload

If i try to upload a file biger than the defined limit the check is done during the upload, so the user will have an error only when the send dats size reach the limit. This can occur after minutes.

With progress upload support (APC or PorgressUpload) there is a file total size info send early.
An early check of this info will permit to cancel the upload and avert the user more quickly.

release the 2.1 FileZ version

Still to do:

  • code: cross-site security. (Depends on #55)
  • user documentation to migrate FileZ from 2.0 to 2.1
  • user doc to install FileZ 2.1 from scratch

Spanish Translation

As mentioned in the homepage of the project. I am going to translate the application into spanish.

Translation is ready and working. How do I upload it to you?

'Unknown date format' - Zend Exception

Hi!
FileZ is awesome. I've tested it on my testing environment without having any issues.
But after installing FileZ on another server i'm getting an exception from Zend:

exception 'Zend_Locale_Exception' with message 'Unknown date format, neither date nor time in 'dd.MM.yy' found' in /web/filez/lib/Zend/Locale/Format.php:853
Stack trace:
#0 /web/filez/lib/Zend/Locale/Format.php(1122): Zend_Locale_Format::_parseDate('31.03.11', Array)
#1 /web/filez/lib/Zend/Date.php(2234): Zend_Locale_Format::getDate('31.03.11', Array)
#2 /web/filez/lib/Zend/Date.php(1078): Zend_Date->_calculate('set', '31.03.11', 'FF', 'de_DE')
#3 /web/filez/lib/Zend/Date.php(197): Zend_Date->set('31.03.11', 'FF', 'de_DE')
#4 /web/filez/app/controllers/Upload.php(111): Zend_Date->__construct('31.03.11', 'FF')
#5 /web/filez/app/controllers/Upload.php(50): App_Controller_Upload->saveFile(Array, Array)
#6 [internal function]: App_Controller_Upload->startAction()
#7 /web/filez/lib/fz_limonade.php(40): call_user_func(Array)
#8 [internal function]: fz_dispatcher('Upload', 'start')
#9 /web/filez/lib/limonade.php(411): call_user_func_array('fz_dispatcher', Array)
#10 /web/filez/index.php(184): run()
#11 {main}

iconv_get_encoding('internal_encoding') returns "ISO-8859-1"

It would be great if you could give me some advice.

Multiple problems

Hi,

a nice tool/idea, however I get many errors/problems and have a feature request:

  1. Installation via aptitude does not work out on my Debian 5, I only have apt-get and it does not find any of the packages provided for progress bar.
  2. After installation the requirements confuse, as they are already set (usually I expect a test script, which only shows, which requirement is not solved) also admin_value does not work inside .htaccess, only inside the confs of apache itself, inside .htaccess it must be without admin_.
  3. Although the /tmp has been set, I still get errors always and anywhere, also if setting another tmp folder, it's required to change the lib/Zend/Cache/Backend/File.php manually to "detect" the tmp folder, this problem is a Zend Framework problem also reported on many other installations like Magento Commerce.
  4. To have another user management like LDAP, ... is a great idea, however, if I just want to have the users managed by the app, there is everything missing, I need to work with MySQL directly, via phpMyAdmin or code sth. by myself to administer the users. That's one feature request.
  5. Finally there seems not to be any rights check, as then the config file would be writeable.
  6. Last issue after successfull go through all the top by manual handwork, I still get "an unknown error occured" if trying to upload a file. I first checked with a file near by the 700 MB, so it does not get any timeout, great, but it does also not allow to interrupt or finally store it, but I now also tried with really small files and as well, they did not store and I always got the same error.

Regards,
Christian

Add choice of the upload bar php module

Actualy Filez use APC but there are others way for upload progress support :

I have been able to patch Filez to use Php ProgressUpload. So, if more hacks come in the future, a modularity writing of of the upload progress feature will allow the server admin to choice the right one for his architecture.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.