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

  FORUM HardWare.fr
  Programmation
  PHP

  [php] Upload de fichier et test de taille

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[php] Upload de fichier et test de taille

n°258114
getget
Il y en a qui ont essayé ...
Posté le 01-12-2002 à 01:02:40  profilanswer
 

Slt !
Voila g un pb qui m'agace depuis un moment.
G un formu remplit par l'utilisateur ou il y a notamment un espace pour un fichier.
Il choisit le fichier envoie le formu, jusque là tout va bien.
 
Ensuite ya un test du type :

Code :
  1. if ($fupload_size<"15000" )
  2. {
  3. ... blabla ...
  4. copy($fupload, $file_dir."/".$id.".gif" ) or die("Impossible de copier" );
  5. ... blabla ...
  6. }
  7. else
  8. echo "trop grand";


 
Et le probleme est le suivant : il upload TOUJOURS le fichier (dans un truc temporaire ou je ne sais ou) avant d'avoir la taille et donc de faire le test.
 
Y'a moyen d'eviter ca ?
parceque quand je met une grande image je me mange un  
 
"La page n'a pu etre affichée" Suite au timeout ... merci d'avance !


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
mood
Publicité
Posté le 01-12-2002 à 01:02:40  profilanswer
 

n°258124
beleg
黑社會
Posté le 01-12-2002 à 01:34:53  profilanswer
 

tas mis ca ds ton formulaire ?
 
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1024000">

n°258133
getget
Il y en a qui ont essayé ...
Posté le 01-12-2002 à 01:52:32  profilanswer
 

Vi g meme mit <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="10"> pour etre sur !
Mais ca change rien :/
 
J'upload plusieurs fichiers ca change kke chose ?


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°258136
beleg
黑社會
Posté le 01-12-2002 à 02:08:41  profilanswer
 

on va un seul post ... c'est quand l'utilité du max_file_size.
jai vu un truc tt a lheure, je reviens.
 
edit : http://www.devparadise.com/technoweb/code/PHP/A435.asp
regarde si ca peut taider
 
 
chez moi limite a 100 ko :
un fichier de taille < = ok
un fichier de taille > = ca rame .. et au bout dun moment, le post s'effectue, je nai pas le fichier attaché.
 
chez moi limite a 10 ko :
un fichier de taille > = aussitot, cest posté sans le fichier


Message édité par beleg le 01-12-2002 à 02:20:13
n°258157
getget
Il y en a qui ont essayé ...
Posté le 01-12-2002 à 10:18:07  profilanswer
 

Chez moi si je met a 10000 donc 10ko ca rame si je mets un plus gros, il le met en cache quand meme :/


Message édité par getget le 01-12-2002 à 10:50:46

---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°258249
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 01-12-2002 à 14:40:57  profilanswer
 

Bin c'est normal. PHP s'exécute côté serveur, donc comment tu veux que le serveur aille déterminer la taille d'un fichier qui est chez le client ? Y a pas de magie ni de mystère, si le client n'uploade pas le fichier sur le serveur, PHP ne peut rien faire.

n°258262
beleg
黑社會
Posté le 01-12-2002 à 15:07:06  profilanswer
 

on parle de max_file_size, qui est défini par le HTML, rien a voir avec le php.
 
Point capital nécessaire pour l'envoi d'un fichier en pièce jointe : il faut changer la valeur de l'attribut ENCTYPE du conteneur FORM en multipart/form-data. En effet, ENCTYPE précise au navigateur le type MIME du message envoyé lors de la validation du formulaire. Le type MIME plain/text vu plus haut signifie texte brut, alors que multipart/form-data signifie que le message peut contenir des données binaires. Si vous oubliez de spécifier le bon code MIME pour l'envoi d'un fichier, vous ne recevrez qu'une chaîne de caractères contenant le nom et le chemin de ce fichier dans l'ordinateur de l'internaute !  
 
Il est également possible de limiter la taille du fichier à envoyer afin de limiter l'encombrement de votre boite aux lettres. Pour cela, ajouter un champs caché nommé MAX_FILE_SIZE et de valeur la taille maximal acceptée en octets.  
 
pas de php ici :
 

Code :
  1. <FORM NAME="nom_du_formulaire" ACTION="mailto:votre@email" METHOD="post" ENCTYPE="multipart/form-data">
  2. <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="taille">
  3. <INPUT TYPE="file" NAME="nom_du_champ" SIZE="taille">
  4. </FORM>

n°258303
getget
Il y en a qui ont essayé ...
Posté le 01-12-2002 à 16:22:29  profilanswer
 

J'ai le multipart form/data, j'ai le max_file_size .... mais ca ne marche pas ...


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°258532
getget
Il y en a qui ont essayé ...
Posté le 01-12-2002 à 22:50:41  profilanswer
 

http://www.quiappeler.com/Test
Regardes ici tu as acces aux sources du truc ...
 
Le HTML :
 

Code :
  1. <html>
  2. <head>
  3. <title>Document sans titre</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </head>
  6. <body>
  7. <form name="form1" enctype="multipart/form-data" method="post" action="upload.php">
  8.   <p>
  9.     <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="10">
  10.     <input type="file" name="file">
  11.   </p>
  12.   <p>
  13.     <input type="submit" name="Submit" value="Envoyer">
  14.   </p>
  15. </form>
  16. </body>
  17. </html>


 
 
Et upload.php :
 

Code :
  1. <html>
  2. <head>
  3. <title>Document sans titre</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </head>
  6. <body>
  7. <?
  8. if ($file_size<"10" )
  9.   { 
  10.    
  11.     copy($file, "Test/test.gif" ) or die("Impossible de copier" );
  12. echo "copié";
  13. }
  14. else
  15. echo "pas copié"
  16. ?>
  17. </body>
  18. </html>


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°258541
Mara's dad
Yes I can !
Posté le 01-12-2002 à 23:10:40  profilanswer
 

Mais Lizez La Doc Bordel !
 
C'est écrit dans la couleur que vous voulez !
 
http://www.php.net/manual/en/features.file-upload.php
 
[citation]
The MAX_FILE_SIZE is advisory to the browser. It is easy to circumvent this maximum. So don't count on it that the browser obeys your wish! The PHP-settings for maximum-size, however, cannot be fooled.
[/citation]
 
Les seuls param PHP qui peut réellement limiter la taille du fichier, c'est upload_max_filesize et post_max_size dans php.ini
 
Il faut savoir que l'upload d'un fichier est traité par le seveur AVANT l'execution du script PHP sensé le traité.
 
N'importe qui peux créer un formulaire HTML qui envoie un fichier de 2 Mo (valeur par défaut de upload_max_filesize ) sur un serveur PHP quelconque. Le fait est que le fichier reçu est dans un fichier temporaire sur le serveur et que PHP supprime le fichier temporaire à la fin du script sensé le traiter.
 
Le problème n'est donc pas de se retrouver avec plein de fichiers temporaires, mais c'est une faille pour une attaque DOS. Ca bouffe la bande passante du serveur pour rien.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
mood
Publicité
Posté le 01-12-2002 à 23:10:40  profilanswer
 

n°258548
getget
Il y en a qui ont essayé ...
Posté le 01-12-2002 à 23:38:29  profilanswer
 

Oué mais moi g pas accez au php.ini donc je cherche une autre solution ....
Car g un timeout avant que le fichoier ne soit uploadé


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°258561
beleg
黑社會
Posté le 02-12-2002 à 00:28:23  profilanswer
 

tenerves pas, php est une chose, html en est une autre, la cest un probleme de html donc laisse php de coté, evidemment quil traite la taille, mais getget veut la traiter coté client egalement.

n°258562
getget
Il y en a qui ont essayé ...
Posté le 02-12-2002 à 00:33:09  profilanswer
 

Bien a priori avec php4 il faut mettre  
 
 <INPUT TYPE="hidden" NAME="UPLOAD_MAX_FILESIZE" VALUE="200000" >
 
et la ca marche mais il me reste un pb .... g un timeout avant la fin de l'upload....


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°258569
beleg
黑社會
Posté le 02-12-2002 à 00:42:33  profilanswer
 

je mettrais ca :
 
if (($file_size<10)&&($file_size>0))
 
ca peut pas faire de mal.

n°258573
getget
Il y en a qui ont essayé ...
Posté le 02-12-2002 à 00:52:29  profilanswer
 

Vouivoui enfin la g pa smit tout le script non plus :)


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°258583
beleg
黑社會
Posté le 02-12-2002 à 01:24:05  profilanswer
 

mouais ... tu crois que je vais te croire  :lol: .
 
rajoute le, chez moi, avec tes fichiers :
 
sans : upload de 1mo ... ca rame 25 secondes, puis erreur car il tente de copier un fichier qui na pas ete uploadé
 
avec : upload 1 mo ... ca rame 25 secondes, et ca le copie pas car taille = 0.
 
pendant tt ces tests, juplodais 1mo sur ton serveur, ca a duré tres lontemps ... tres tres longtemps ... le probleme ne vient peut etre pas de html ou php mais du serveur sur lequel sont les fichiers.


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

  [php] Upload de fichier et test de taille

 

Sujets relatifs
exécution d'un fichier qui se situe en dehors du script plDate d'un fichier en PHP
strlen dans un fichier externe?[XML|Java]Flux de fichier
Renommage et suppression de fichierconnaitre la taille d'un tableau en 2-D
[PHP] appel d'une fonction dans un autre fichier[JAVA] Distinguer un fichier ASCII d'un fichier unicode
mettre un fichier dans un stringCrée des liens dans une page Excel vers un fichier
Plus de sujets relatifs à : [php] Upload de fichier et test de taille


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