Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1071 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Upload de 1Go en PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Upload de 1Go en PHP

n°2044990
duffman39
Posté le 29-12-2010 à 16:17:16  profilanswer
 

Bonjour  
 
J'utilise MAMP pour simulé un serveur apache et j'ai essaye depuis 10 jours de faire des envois de fichier de 1Go max.
Voici mon script
 
Upload.php

Code :
  1. <?
  2. ini_set('memory_limit', 80000); // en octets
  3. set_time_limit(60000); // en secondes
  4. // Taille maximum
  5. $MAX_FILE_SIZE = 3;
  6. $post_max_size = "1000000000";
  7. // Dossier de destination du fichier
  8. $folder = "./";
  9. // Tableau array des différents types
  10. // Variables récupérée par methode POST du formulaires
  11. $fname = $HTTP_POST_FILES['fichier']['name'];
  12. $ftype = $HTTP_POST_FILES['fichier']['type'];
  13. $fsize = $HTTP_POST_FILES['fichier']['size'];
  14. $ftmp = $HTTP_POST_FILES['fichier']['tmp_name'];
  15. // Diverses test afin de savoir si :
  16. // Le format de fichier correspond à notre tableau array
  17. if(!in_array($ftype, $allowed_types)){$error = 1;}
  18. // La taille du fichier n'est pas dépassée
  19. if($fize > $MAX_FILE_SIZE){$error = 2;}
  20. // Le fichier n'existe pas déjà
  21. if(file_exists($folder."m_".$fname)){$error = 3;}
  22. // Si tout va bien, c'est bien déroulé
  23. if(copy($ftmp,''.$folder.''.$fname.'')) {$error = 0;}
  24. // Switch servant simplement à la gestion des erreures
  25. switch($error){
  26. case'0':
  27. echo("Fichier correctement envoyé." );
  28. break;
  29. case'1':
  30. echo("Format de fichier incorrecte." );
  31. break;
  32. case'2':
  33. echo("Fichier trop volumineux." );
  34. break;
  35. case'3':
  36. echo("Fichier déjà existant." );
  37. break;
  38. }
  39. ?>


 
index.html

Code :
  1. <p align="center"><form name="upload" enctype="multipart/form-data" method="post" action="upload.php">
  2.       <input type="file" name="file" size="100">
  3.       <br><br>
  4.        <input type="submit" name="bouton_submit" value="Envoyer le fichier">
  5.         </p></form>


 
Phpinfo
http://img521.imageshack.us/img521/8271/capturedcran20101229161.png
 
A chaque fois que jessai denvoyer un fichier j'ai une erreur .
Quelqu'un peut il m'aider ?
 
Merci d'avance

mood
Publicité
Posté le 29-12-2010 à 16:17:16  profilanswer
 

n°2045189
dwogsi
Défaillance cérébrale...
Posté le 30-12-2010 à 16:54:22  profilanswer
 

Regarde aussi du côté de la directive post_max_size.
Ton formulaire est envoyé en POST et il me semble qu'il faut que cette directive ait une valeur supérieur à upload_max_filesize.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°2045220
smaragdus
whores, drugs & J.S. Bach
Posté le 30-12-2010 à 18:06:31  profilanswer
 

duffman39 a écrit :

A chaque fois que jessai denvoyer un fichier j'ai une erreur .
Quelqu'un peut il m'aider ?


 
Comme on te l'a dit dans un autre topic (tu vas en créer combien ? )
 
C'est débile de vouloir uploader 1 Go par un POST. Y a 150 timeout de toute sorte qui vont t'en empecher à commencer par le temps d'execution max d'un script.
 
Exemple : 1 Go uploadé à 1 MB/s soient 1000 sec donc ton script doit tourner pendant 16 minutes  :pt1cable:


Message édité par smaragdus le 30-12-2010 à 18:07:53
n°2045227
dwogsi
Défaillance cérébrale...
Posté le 30-12-2010 à 18:59:02  profilanswer
 

Ouai c'est pas faux, ya le FTP comme protocole pas mal aussi :o


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°2045232
duffman39
Posté le 30-12-2010 à 19:21:30  profilanswer
 

A la base c'est se qu'il avait été suggéré de passer pour du ftp mais mon directeur commercial ne veut pas en entendre parler.
Donc il ma dis si ça marche avec megaupload ca doit marcher avec du php, mais bon.
 
Ya til possibilité de changer le timeout avec le php.ini
Ou si la méthode post n'est pas approprié . Y a t'il une autre possibilité autres que le ftp biensur.
Merci d'avance.

n°2045269
CyberDenix
Posté le 30-12-2010 à 23:20:34  profilanswer
 

1 Go c'est 1024M, pas 1000...
 
Tu dois changer la directive max_execution_time et la mettre à 0 (infini)
Change le post_max_size et mets le à 1024M aussi

Message cité 1 fois
Message édité par CyberDenix le 30-12-2010 à 23:22:12

---------------
Directeur Technique (CTO)
n°2045352
smaragdus
whores, drugs & J.S. Bach
Posté le 31-12-2010 à 12:22:58  profilanswer
 

duffman39 a écrit :

A la base c'est se qu'il avait été suggéré de passer pour du ftp mais mon directeur commercial ne veut pas en entendre parler.
Donc il ma dis si ça marche avec megaupload ca doit marcher avec du php, mais bon.


 
Ah... on le reconnait bien l'argument de marketeux bidon et incompétent ("si ça marche avec XXXX alors ça doit marcher avec YYYY" )  :lol:  
 

Citation :

Ou si la méthode post n'est pas approprié . Y a t'il une autre possibilité autres que le ftp biensur.


 
Oui : voir mon post sur l'autre thread que tu avais créé

n°2045354
smaragdus
whores, drugs & J.S. Bach
Posté le 31-12-2010 à 12:29:18  profilanswer
 

CyberDenix a écrit :

1 Go c'est 1024M, pas 1000...


Non :o
Un Go, c'est 1000 Mo.  
C'est 1 Gio qui vaut 1024 Mio.
 

Citation :

Tu dois changer la directive max_execution_time et la mettre à 0 (infini)


Excellent conseil pour faire planter un serveur  
 
 

n°2045371
gatsu35
Blablaté par Harko
Posté le 31-12-2010 à 13:51:34  profilanswer
 

duffman39 a écrit :

A la base c'est se qu'il avait été suggéré de passer pour du ftp mais mon directeur commercial ne veut pas en entendre parler.
Donc il ma dis si ça marche avec megaupload ca doit marcher avec du php, mais bon.
 
Ya til possibilité de changer le timeout avec le php.ini
Ou si la méthode post n'est pas approprié . Y a t'il une autre possibilité autres que le ftp biensur.
Merci d'avance.


upload avec flash [:spamafote]


---------------
Blablaté par Harko
n°2045389
stealth35
Posté le 31-12-2010 à 14:51:12  profilanswer
 

smaragdus a écrit :


Non :o
Un Go, c'est 1000 Mo.  
C'est 1 Gio qui vaut 1024 Mio.


 
lol

mood
Publicité
Posté le 31-12-2010 à 14:51:12  profilanswer
 

n°2045419
Dj YeLL
$question = $to_be || !$to_be;
Posté le 31-12-2010 à 16:46:06  profilanswer
 


 
tl;dr


---------------
Gamertag: CoteBlack YeLL
n°2045430
PierreC
Posté le 31-12-2010 à 18:32:44  profilanswer
 

Et si on commençait par le début ?
 
C'est quoi le message d'erreur ?


---------------
Du tofu en Alsace : www.tofuhong.com
n°2045433
thomase
Posté le 31-12-2010 à 18:48:15  profilanswer
 

Je ne dis pas que c'est la solution avec Apache, mais j'ai eu exactement ce problème il y a deux jours avec Nginx et mettre "1000m" au lieu de "1000M" dans la configuration était la solution.
 
En tout cas ça ne coûte pas cher de tester [:cosmoschtroumpf]  
 
Sinon, par pitié, ne préconisez pas d'utiliser ftp  [:tinostar]

n°2045475
duffman39
Posté le 01-01-2011 à 15:42:43  profilanswer
 

ce que j'ai comme erreur c'est "Format de fichier incorrecte."
Du coup j'ai mi les types mime de correspondant dans le script mais la meme erreur revient

n°2045504
CyberDenix
Posté le 01-01-2011 à 21:14:50  profilanswer
 

smaragdus a écrit :


Non :o
Un Go, c'est 1000 Mo.  
C'est 1 Gio qui vaut 1024 Mio.


 
Go = Giga Octet
 

smaragdus a écrit :


Citation :

Tu dois changer la directive max_execution_time et la mettre à 0 (infini)


Excellent conseil pour faire planter un serveur


 
Je ne vois pas en quoi cette directive ferait planter le serveur, sauf à coder un while (true); .


---------------
Directeur Technique (CTO)
n°2045531
esox_ch
Posté le 01-01-2011 à 22:52:36  profilanswer
 

CyberDenix a écrit :

 

Go = Giga Octet

 


 

Exactement ( http://en.wikipedia.org/wiki/Octet_(computing) ):

 

1 gibioctet (Gio) = 2^30 octets = 1024 Mio
1 gigaoctet (Go) = 10^9 octets = 1000 Mo

 
CyberDenix a écrit :

 

Je ne vois pas en quoi cette directive ferait planter le serveur, sauf à coder un while (true); .

 

Dans ce cas pourquoi penses-tu que les dev de PHP aient créé cette config? Pour faire chier ceux qui ne savent pas la modifier? Ou peut-être parce que c'est une porte d'entrée idéale pour les DoS?

Message cité 1 fois
Message édité par esox_ch le 01-01-2011 à 22:52:53

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2045657
CyberDenix
Posté le 02-01-2011 à 19:32:31  profilanswer
 

T'es de mauvaise foi quand même...
http://fr.wikipedia.org/wiki/Octet [...] ditionnels
 
Cf le bloc "usage traditionnel", qui reste la référence sur les systèmes Windows et Unix, autrement dit 99.999% des systèmes de la planète. Quand on connait la nature des octets, ou mots de huit bits, c'est à dire un ensemble de deux valeurs (ou puissance de 2), on comprend vite que penser utiliser un système en base 10 c'est une infinie connerie.
 
 

esox_ch a écrit :

Dans ce cas pourquoi penses-tu que les dev de PHP aient créé cette config? Pour faire chier ceux qui ne savent pas la modifier? Ou peut-être parce que c'est une porte d'entrée idéale pour les DoS?


 
Mince, alors pour empêcher une attaque DDos, il suffit d'activer ce paramètre ?
Ils sont vraiment cons les devs de Google, Paypal, Mastercard, ...  :sweat:  
 
Ou alors ça n'a peut-être rien à voir...  :lol:  
http://www.cisco.com/web/about/ac1 [...] tacks.html
 


---------------
Directeur Technique (CTO)
n°2045673
esox_ch
Posté le 02-01-2011 à 20:17:14  profilanswer
 

CyberDenix a écrit :

T'es de mauvaise foi quand même...
http://fr.wikipedia.org/wiki/Octet [...] ditionnels
 
Cf le bloc "usage traditionnel", qui reste la référence sur les systèmes Windows et Unix, autrement dit 99.999% des systèmes de la planète. Quand on connait la nature des octets, ou mots de huit bits, c'est à dire un ensemble de deux valeurs (ou puissance de 2), on comprend vite que penser utiliser un système en base 10 c'est une infinie connerie.


 
Je suis absolument pas de mauvaise foi. J'ai pris WP "par defaut" car c'est le reglage de mon browser... Et je persiste à dire que ce n'est pas parce que qqch est "usuel" que c'est forcément juste ou vrai. Il suffi que tu regardes le bordel que ces histoires de Gio VS Go sont en train de faire avec les capacité des HDD (y a un article là dessus sur hd.fr justement) pour se rendre compte que tout le monde n'est pas aussi clairvoyant que toi.
 

CyberDenix a écrit :


 
Mince, alors pour empêcher une attaque DDos, il suffit d'activer ce paramètre ?
Ils sont vraiment cons les devs de Google, Paypal, Mastercard, ...  :sweat:  
 
Ou alors ça n'a peut-être rien à voir...  :lol:  
http://www.cisco.com/web/about/ac1 [...] tacks.html
 


 
Mais bon sang arrête de jouer au plus con avec tout le monde sur le forum, on a compris! Ou alors tu vas venir nous expliquer que tous les DoS au monde ont été effectués de la même manière hein?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2045693
CyberDenix
Posté le 02-01-2011 à 21:20:51  profilanswer
 

De toute façon une attaque DDoS, c'est une attaque dans le dos !   :lol:


Message édité par CyberDenix le 02-01-2011 à 21:21:16

---------------
Directeur Technique (CTO)
n°2045753
antac
..
Posté le 03-01-2011 à 09:53:49  profilanswer
 

CyberDenix a écrit :

T'es de mauvaise foi quand même...
http://fr.wikipedia.org/wiki/Octet [...] ditionnels
 
Cf le bloc "usage traditionnel", qui reste la référence sur les systèmes Windows et Unix, autrement dit 99.999% des systèmes de la planète. Quand on connait la nature des octets, ou mots de huit bits, c'est à dire un ensemble de deux valeurs (ou puissance de 2), on comprend vite que penser utiliser un système en base 10 c'est une infinie connerie.
 
 


 

CyberDenix a écrit :


 
Mince, alors pour empêcher une attaque DDos, il suffit d'activer ce paramètre ?
Ils sont vraiment cons les devs de Google, Paypal, Mastercard, ...  :sweat:  
 
Ou alors ça n'a peut-être rien à voir...  :lol:  
http://www.cisco.com/web/about/ac1 [...] tacks.html
 


 
Il y a plusieurs façon de cambrioler une maison (défonçage de porte, ruse, coupure de courant pour désactiver les alarmes....), ce n'est pas une raison pour laisser la porte ouverte en se disant que de toute façon il y a plusieurs façon de te cambrioler.
C'est le même principe, mettre une valeur infinie sur une possibilité d'upload est bien plus risqué que de mettre une valeur haute

n°2045836
smaragdus
whores, drugs & J.S. Bach
Posté le 03-01-2011 à 13:53:49  profilanswer
 

CyberDenix a écrit :


 
Je ne vois pas en quoi cette directive ferait planter le serveur, sauf à coder un while (true); .


 
Pas besoin de while true, une boucle longue suffit par remplir la mémoire vu qu'il y a toujours des fuites de mémoires.

n°2045837
smaragdus
whores, drugs & J.S. Bach
Posté le 03-01-2011 à 13:55:58  profilanswer
 

CyberDenix a écrit :

T'es de mauvaise foi quand même...
http://fr.wikipedia.org/wiki/Octet [...] ditionnels
 
Cf le bloc "usage traditionnel", qui reste la référence sur les systèmes Windows et Unix, autrement dit 99.999% des systèmes de la planète. Quand on connait la nature des octets, ou mots de huit bits, c'est à dire un ensemble de deux valeurs (ou puissance de 2), on comprend vite que penser utiliser un système en base 10 c'est une infinie connerie.
 


 
A part que toutes les unités dans le monde utilisent un système décimal.
 
T'es aussi rétrogrades que ceux qui utilisent encore le système impérial  :lol:  

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Upload de 1Go en PHP

 

Sujets relatifs
Upload fichier et notification par mail !Php, Affichage Contenu Db
[PHP]Tableau dans les fonctionsPb contenu html en PHP
Envoie d'une pièce jointe en PHP avec mail()...presque...PHP commande FLASH
Upload d'image autoActualiser une liste de données tirées d'une table Mysql en PHP
[PHP]SSH sur cisco[PHP] Créer un client ActiveSync
Plus de sujets relatifs à : Upload de 1Go en PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR