|
Dernière réponse | |
---|---|
Sujet : php-envoie d'un fichier sur le net | |
Bounga69 | ben en fait, j'ai regardé sur plusieurs moteurs de recherche et impossible de faire tourner des scripts d'upload sous QuickPHP ou EasyPHP, peut-être PHPTriad ? |
Aperçu |
---|
Vue Rapide de la discussion |
---|
Bounga69 | ben en fait, j'ai regardé sur plusieurs moteurs de recherche et impossible de faire tourner des scripts d'upload sous QuickPHP ou EasyPHP, peut-être PHPTriad ? |
nicotine | - aux vues des logs , j'aimerais voir le script complet (je l'essayerais ensuite de mon coté)
- il est bien connu que windoz n'est pas l'ideal pour faire tourner apache /mysql /php :D ....mais c'est un autre debat. |
Lolo2k | meme pb de plantage de php (avec quickphp ou eazyphp) sous win pr mes scripts d'upload ... |
Bounga69 | [Wed Apr 11 15:07:56 2001] [error] [client 127.0.0.1] Premature end of script headers: e:/quickphp/php4/php.exe
[Sun Apr 15 11:44:54 2001] [error] [client 127.0.0.1] Premature end of script headers: e:/quickphp/php3/php.exe [Sun Apr 15 12:01:11 2001] [error] [client 127.0.0.1] Premature end of script headers: e:/quickphp/php3/php.exe [Sat Apr 21 13:47:06 2001] [error] [client 127.0.0.1] Premature end of script headers: e:/quickphp/php3/php.exe [Sat Apr 21 14:33:20 2001] [error] [client 127.0.0.1] Premature end of script headers: e:/quickphp/php3/php.exe [Sat Apr 21 14:36:42 2001] [error] [client 127.0.0.1] Premature end of script headers: e:/quickphp/php3/php.exe [Sun Apr 22 00:50:45 2001] [error] [client 127.0.0.1] Premature end of script headers: e:/quickphp/php3/php.exe |
nicotine | les logs d'apache !! |
Bounga69 | avec php j'obtiens ça : Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, you@your.address and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. -------------------------------------------------------------------------------- Apache/1.3.14 Server at localhost Port 80 après un plantage de php.exe avec quickphp quelque soit le script d'upload utilisé. |
nicotine | tu peux mettre ton error_log d'apache stp ? |
nicotine | ca depend ce que tu veux en faire et ou tu l'heberges.
j'ai limité le mien à 20 Mo (et tu peux aussi limite via MAX_FILE_SIZE ;) : c'est pour un intranet |
Bounga69 | 100000, c'est bien 100 Ko ? |
nicotine | t'as declaré quel taille max de fichier à uploader dans ton php.ini ? |
Bounga69 | je vais essayer Roswell, mais apparemment c'est QuickPHP, EasyPHP et autres qui foirent. Ca fonctionne chez vous ? |
Roswell_ | Et ça : ça donne quoi
fichier upload.php3 ------------------- <HTML><HEAD></HEAD> <BODY> <?php echo $Fichier; if ($Fichier && $Fichier != "none" ) { echo "<H1> Votre fichier : </H1>"; echo "Fichier sur serveur : $Fichier<BR>"; echo "Fichier envoyé : $Fichier_name<BR>"; echo "Taille : $Fichier_size<BR>"; echo "Type : $Fichier_type<BR>"; copy(stripslashes($Fichier), $Fichier_name); $tab=file(stripslashes($Fichier)); unlink(stripslashes($Fichier)); for ($i=0;$i<count($tab);$i++) echo $tab[$i]; } ?> <FORM ENCTYPE="multipart/form-data" ACTION="upload.php3" METHOD="POST"> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000"> Envoyer le fichier : <INPUT NAME="Fichier" TYPE="file"> <INPUT TYPE="submit" VALUE="Envoyer le fichier"> </FORM> </BODY></HTML> --------------------------- |
Bounga69 | nicotine> j'ai essayé ton script, mais il me fait la même erreur que l'utre, plantage de php et ensuite affichage d'une page html disant que le serveur a rencontré une erreur, veuillez la mentionner à xxx. |
Bounga69 | pas d'autres réponses, moi je voudrais le tester quand même via QuickPHP ou autre avant de le balancer sur le net.
UP |
Bounga69 | merci tout le monde |
nicotine | un fichier uploadé est stocké dans un repertoire temporaire sur le systeme distant.
il faut donc le deplacer dans une zone visible par ton serveur web. mais pour pouvoir le deplacer il faut connaitre son nom temporaire (pour le retrouver) ainsi que son vrai nom (pour le copier en zone visible) // ------------------------------------------------------------- // recup de multiples fichiers uploade HTTP_POST_FILE // ------------------------------------------------------------- function GetFile( $http_file ) { $tab = array(); for ($i=0 ; $i < count($http_file) ; $i+=4 ) { $tab[$i]["nom"] = $http_file["name"][$i]; $tab[$i]["tmp"] = $http_file["tmp_name"][$i]; $tab[$i]["type"] = $http_file["type"][$i]; $tab[$i]["taille"] = $http_file["size"][$i]; } return $tab; } dans ton html met journal[] plutot que journal , en multipliant les champs de ce type : tu pourras ainsi uploadé plusieurs fichiers simultanement . Ensuite : l'appel : $info = GetFile($HTTP_POST_FILES["journal"]); deplacement (si "/web/www/upload" est le repertoire visible depuis ton serveur web) for ($i=0 ; $i <count($info) ; $i++) if (! copy($info[$i]["tmp"],"/web/www/upload/".$info[$i]["nom"])) { echo "probleme" ; exit; } else { echo "le fichier ".$info[$i]["nom"]." de taille ".$info[$i]["taille"]." a été transféré de ".$info[$i]["tmp"]." en /web/www/upload/".$info[$i]["nom"]; } |
Zebra3 | 1/
"<input type="hidden" name="taillemax" size="100000">" tu devrais utiliser name="MAX_FILE_SIZE" comme ça le fichier n'est pas conservé sur le serveur s'il dépasse cette taille (mais aucun message d'erreur n'est généré) 2/ le chemin utilisé pour la fonction copy() doit être défini par raport au système pas par rapport au serveur web donc celui que tu indiques ne peut pas être bon, je pense que c'est là d'où vient ton erreur. Par exmeple celà pourrait être "c:/serveur_web/www/fichiers/" 3/ Dans ton fichier de traitement il faudrait plutôt utiliser if ($journal != "none" ) {.... car si tu n'indiques pas de fichier la variable $journal prendra la valeur "none" et tu auras une erreur lors de l'appel à la fontion copy() puisqu'il n'y a pas de fichier ! |
Bounga69 | $journal_name c'est un fichier temp.html de moins de 1ko. L'erreur en fait c'est "internal server error" et le programme php plante, pas le serveur. Sur un autre site le mec a fait un script pour envoyer un fichier sur son site via un formulaire, comme moi, mais ça ne marche pas non plus via easyphp, mais ça fonctionne chez son hébergeur, c'est pour ça que je veux savoir si mon script est correct vu que je ne peux pas le vérifier. |
line | c'est koi ton $journal_name ?
quelle est l'erreur générée ? en general elles sont assez explicites |
Bounga69 | salut tout le monde, voilà j'ai fait un formulaire pour envoyer un fichier sur un site :
<HTML> <HEAD> <TITLE>envoyer un journal journal</TITLE> </HEAD> <BODY> <form name="vince" method="post" action="lea_ajout_journal.php3" enctype="multipart/form-data"> <input type="hidden" name="taillemax" size="100000"> <table> <tr> <td>entrez le chemin complet du fichier à transférer :</td><td><input type="file" name="journal"></td> </tr> </table> <p> <p align="center"><input type="submit" value="envoyer le fichier"></p> </form> </BODY> </HTML> ce fichier je voudrais qu'il soit dans un répertoire particulier de mon site, donc j'ai le fichier .php3 suivant : <?php if($journal) copy($journal,"journal/".$journal_name); ?> J'utilise QuickPHP pour tester si mon site fonctionne et lorsque j'essaie d'envoyer un fichier il y a une erreur au niveau du serveur, avec EasyPHP c'est pareil, quelq'un pourrait me confirmer ou me corriger mes pages. |