Upload fichier supérieur à 300 Mo

Upload fichier supérieur à 300 Mo - PHP - Programmation

Marsh Posté le 06-12-2008 à 12:03:10    

Bonjour,
 
je suis à la recherche d'un moyen d'uploader un fichier sup à 300 Mo sur un serveur via un formulaire php/html classique.
J'ai deja essayé de mettre essayé d'ajouter ceci à mon htaccess:  
 
php_value file_uploads On
php_value memory_limit 400M  
php_value post_max_size 400M  
php_value upload_max_filesize 400M  
 
Mais ca ne marche pas, en plus c'est un peu risqué !
 
Quelle est selon vous la méthode la plus propre pour faire passer 300 Mo par http ?
Peut etre en passant par un applet java ? existe t'il un script pret à l'emploi car je ne connais pas java ?
 
Merci de votre aide
 
 

Reply

Marsh Posté le 06-12-2008 à 12:03:10   

Reply

Marsh Posté le 06-12-2008 à 12:21:58    

Quoi que tu fasses, c'est un peu "chiant" parce que HTTP n'est pas fait pour ça..
J'ai écris une applet qui permet d'uploader des gros fichiers, mais quoi qu'on fasse j'ai toujours trouvé le résultat un peu moyen ..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 06-12-2008 à 12:41:34    

Vers quel langage se tourner alors ?

Reply

Marsh Posté le 06-12-2008 à 12:48:57    

esox_ch t'as dit que le problème vient plus du protocole que du langage.
 
FTP serait plus adapté.
 
 
EDIT : _ch  :D

Message cité 1 fois
Message édité par sircam le 06-12-2008 à 12:49:16

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 06-12-2008 à 12:51:25    

sircam a écrit :


EDIT : _ch  :D


 
Mon _ch va me couter la victoire sur NazzTazz, mais j'en suis fier quand même  :lol:  


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 06-12-2008 à 12:52:21    

J'ai eu le même problème.
Pour le résoudre, j'ai monter un p'tit FTP anonyme et installé un applet java qui ne permettait que d'uploader des fichiers sur un FTP. C'est las seule solution viable que j'ai trouvé.

 

Edit :
Euh...
En fait non j'y repense c'était pas du tout un FTP anonyme.
Mais les id/mdp de connexion étaient intégrés à l'applet donc c'était complètement transparent pour l'utilisateur.


Message édité par dwogsi le 06-12-2008 à 13:05:23

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 06-12-2008 à 13:10:42    

Je dois réfléchir à un système similaire à implémenter dans ma plateforme-
Le problème qu'avec ton système, c'est assez simple de récupérer les identifiants de connexion et en conséquence, de voir ce qu'uploadent les autres.

 

Une solution serait peut-être de transmettre ça via SFTP + applet avec code "obscuré"  mais je sais pas trop ce que ça donne niveau risques pour la sécurité du serveur :s Et j'aimerais éviter de devoir monter une cage chroot pour l'utilisateur "public" juste pour pouvoir permettre des gros upload :heink:


Message édité par esox_ch le 06-12-2008 à 13:11:05

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 06-12-2008 à 13:14:40    

Bah en principe tu peux très bien autoriser l'écriture sur un FTP sans rien d'autre. C'est à dire sans le listing, la suppression etc.

 

Personnellement c'était dans le cadre d'un backoffice donc pas trop de problèmes à donner les id de connexion puisqu'en principe ça ne tombe pas sur des personnes qui sont là pour faire n'importe quoi.


Message édité par dwogsi le 06-12-2008 à 13:19:57

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 06-12-2008 à 13:21:14    

Dans mon cas le cadre d'utilisation serait à définir par l'administrateur du site. Il pourrait donc faire un "youtube" like en autorisant toute personne inscrite sur le site à uploader. Et là donc pour éviter qu'un non-inscrit puisse uploader, il faut restreindre l'accès au FTP de manière fiable .


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 06-12-2008 à 13:26:16    

Logiquement sur un FTP on doit pouvoir interdire :
- Création / Suppression de répertoires
- Suppression de Fichiers
- Listing du contenu
- Le download de fichiers

 

Et n'autoriser que l'upload de fichier.
Donc l'utilisation du FTP est très limité. On ne peut qu'envoyer des fichiers.

 

Bon après ça peut poser quelques problèmes :
- Envoyer un fichier qui à le même nom qu'un autre déjà présent sur le serveur va renvoyer un "permission denied" ou quelque chose comme ça.
- N'importe qui peut envoyer n'importe quoi via un client FTP classique. Donc peut être prévoir un cron de nettoyage aussi.

 

Mais dans l'absolue ça me parait possible et sans risques.

 

Edit : Quota aussi, histoire de pas remplir de DD du serveur, mais bon ça parait évident.

Message cité 1 fois
Message édité par dwogsi le 06-12-2008 à 13:27:08

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 06-12-2008 à 13:26:16   

Reply

Marsh Posté le 06-12-2008 à 13:36:09    

dwogsi a écrit :


- Envoyer un fichier qui à le même nom qu'un autre déjà présent sur le serveur va renvoyer un "permission denied" ou quelque chose comme ça.
 
Edit : Quota aussi, histoire de pas remplir de DD du serveur, mais bon ça parait évident.


 
Pour çà suffit de faire un test de disponibilité de DD (histoires de capacité DD) avec le langage serveur utilisé et pareil pour le problème de fichier déjà existant  
 
Pour PHP je pense à :

Code :
  1. $free_space = disk_free_space();
  2. $file_exists = file_exists("filename" );


 

Reply

Marsh Posté le 06-12-2008 à 13:36:52    

Citation :


Envoyer un fichier qui à le même nom qu'un autre déjà présent sur le serveur va renvoyer un "permission denied" ou quelque chose comme ça.  


ça c'est facile à éviter : Mon applet concatène un timestamp en nanosec, donc pas de risque.
 

Citation :


N'importe qui peut envoyer n'importe quoi via un client FTP classique. Donc peut être prévoir un cron de nettoyage aussi.  


 
ça c'est plus délicat. J'ai pensé à un cron s'exécutant toutes les 5 minutes et lançant un script disant :

Code :
  1. for fichier  dans tous_les_fichiers_du_repertoire
  2. delete if fichier.doit_etre_effacer_prochaine_execution
  3. if fichier.taille.maintenant == taile.taille.dernière_execution
  4. fichier.doit_etre_effacer_prochaine_execution = true
  5. else
  6. fichier.taille.dernière_execution = fichier.taille.maintenant
  7. end
  8. end


 
Une fois l'upload terminé, l'applet donne l'ordre au serveur de déplacer le fichier uploadé dans une zone "sûre". Et toutes les 10 minutes les fichiers "illégaux" seraient effacés. En couplant ça avec un système de SFTP & co je pense que c'est assez sûr mais bon c'est quand même plus chiant à mettre en place qu'un simple form HTTP


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 06-12-2008 à 13:44:05    

Ah oui effectivement c'est plus compliqué qu'un simple form. Mais bon je vois pas de meilleur solution.
Sinon j'aime bien ton script de nettoyage, je crois que je vais reprendre l'idée, si tu permets. :jap:
 
 
 
Euh... Oui mais sachant que tout le monde a la possibilité de se connecter au serveur FTP je vois pas bien ce que peut y faire PHP.
Ya que le cron pour nettoyer de temps en temps qui peut fonctionner + quota.

Message cité 1 fois
Message édité par dwogsi le 06-12-2008 à 13:46:41

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 06-12-2008 à 13:56:26    

je crois que je vais me pencher aussi sur cette option FTP + cron de nettoyage.
 
esox_ch: ton applet est il open source ? :)

Reply

Marsh Posté le 06-12-2008 à 13:58:11    

dwogsi a écrit :

Ah oui effectivement c'est plus compliqué qu'un simple form. Mais bon je vois pas de meilleur solution.
Sinon j'aime bien ton script de nettoyage, je crois que je vais reprendre l'idée, si tu permets. :jap:
 


 

dwogsi a écrit :


 
Euh... Oui mais sachant que tout le monde a la possibilité de se connecter au serveur FTP je vois pas bien ce que peut y faire PHP.
Ya que le cron pour nettoyer de temps en temps qui peut fonctionner + quota.


 
non mais si tu passes par Java tu utilises des fonctions similaires que je ne connais pas  
:jap:

Reply

Marsh Posté le 06-12-2008 à 14:00:47    

Oui on passe par un applet JAVA, mais tu peux faire ce que tu veux dans cet applet yaura toujours un moyen de retrouver toutes les informations de connexion au serveur. Donc n'importe qui pourra se connecter avec un client FTP classique et envoyer n'importe quoi. On est donc obligé de passer par un cron pour faire le ménage.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 06-12-2008 à 14:27:49    

pipo83 a écrit :

je crois que je vais me pencher aussi sur cette option FTP + cron de nettoyage.
 
esox_ch: ton applet est il open source ? :)


 
Malheureusement je l'avais développée pour un client spécifique, donc non. Cependant, j'avais posté certains bouts de code (les plus compliqués) ici sur le forum parce que j'avais eu des soucis. Ceci dit, je répète que l'Applet en question utilisait HTTP et donc le client a parfois eu des problèmes quand l'upload durait plus qu'une 10ène de minutes.. Des fois un upload de 200Mo passait, des fois pas. Jamais compris pourquoi.
 

dwogsi a écrit :

Oui on passe par un applet JAVA, mais tu peux faire ce que tu veux dans cet applet yaura toujours un moyen de retrouver toutes les informations de connexion au serveur. Donc n'importe qui pourra se connecter avec un client FTP classique et envoyer n'importe quoi. On est donc obligé de passer par un cron pour faire le ménage.


 
J'ai jamais trop cherché de ce côté là mais à ce que je me rappelle il y a moyen de créer des applet avec du code offusqué mais je sais pas ce que ça vaut. Disons qu'à mon avis si on fait bien les choses (SFTP + user dans chroot cage + Applet offusquée + Cron script) on doit déjà être pas mal ... Mais ça serait intéressant que quelqu'un de compétent donne son avis (Si ça se trouve y a 10x plus simple :D)  
 
P.S: Tu peux reprendre ce que tu veux dwogsi :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 06-12-2008 à 17:40:19    

Reply

Marsh Posté le 06-12-2008 à 17:48:46    

esox_ch a écrit :


 
J'ai jamais trop cherché de ce côté là mais à ce que je me rappelle il y a moyen de créer des applet avec du code offusqué mais je sais pas ce que ça vaut. Disons qu'à mon avis si on fait bien les choses (SFTP + user dans chroot cage + Applet offusquée + Cron script) on doit déjà être pas mal ... Mais ça serait intéressant que quelqu'un de compétent donne son avis (Si ça se trouve y a 10x plus simple :D)  
 
P.S: Tu peux reprendre ce que tu veux dwogsi :D


dans ce cas la , le plus  simple est de regarder ce qui passe sur le réseau :/
 
sinon, il y ales solutions de ce style : http://encodable.com/filechucker/


---------------

Reply

Marsh Posté le 08-12-2008 à 10:10:45    


As-tu lu le topic ? Les infos que tu donnes n'apportent rien aux gens qui ont posté ici...  
 
Sinon pour 100Mo max y'a ça : http://drop.io/


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 08-12-2008 à 18:21:48    

jagstang a écrit :


As-tu lu le topic ? Les infos que tu donnes n'apportent rien aux gens qui ont posté ici...  
 
Sinon pour 100Mo max y'a ça : http://drop.io/


 
Et toi tu appelles ça aider ?  :ouch:  
 
 
 :sarcastic:

Reply

Marsh Posté le 08-12-2008 à 18:27:39    

FR-DarkRod a écrit :


 
Et toi tu appelles ça aider ?  :ouch:  
 
 
 :sarcastic:


 
Oui :
http://api.drop.io/

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed