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

  FORUM HardWare.fr
  Programmation

  php-envoie d'un fichier sur le net

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

php-envoie d'un fichier sur le net

n°24878
Bounga69
Wii will rock you
Posté le 15-04-2001 à 12:12:02  profilanswer
 

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.

mood
Publicité
Posté le 15-04-2001 à 12:12:02  profilanswer
 

n°24882
line
Bisounours'Land
Posté le 15-04-2001 à 14:54:06  profilanswer
 

c'est koi ton $journal_name ?
 
quelle est l'erreur générée ? en general elles sont assez explicites

n°24886
Bounga69
Wii will rock you
Posté le 15-04-2001 à 16:22:01  profilanswer
 

$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.

n°24995
Zebra3
Posté le 16-04-2001 à 19:02:22  profilanswer
 

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 !

n°25001
nicotine
Posté le 16-04-2001 à 20:12:30  profilanswer
 

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"];
      }


---------------
Do androïds dream of electric sheep ?
n°25079
Bounga69
Wii will rock you
Posté le 17-04-2001 à 09:58:09  profilanswer
 

merci tout le monde

n°25312
Bounga69
Wii will rock you
Posté le 17-04-2001 à 17:41:47  profilanswer
 

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

n°26375
Bounga69
Wii will rock you
Posté le 21-04-2001 à 15:00:22  profilanswer
 

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.

n°26376
Roswell_
Posté le 21-04-2001 à 15:05:14  profilanswer
 

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>
---------------------------


---------------
http://www.cheata.net le site qui vous donne la banane!
n°26378
Bounga69
Wii will rock you
Posté le 21-04-2001 à 15:09:44  profilanswer
 

je vais essayer Roswell, mais apparemment c'est QuickPHP, EasyPHP et autres qui foirent. Ca fonctionne chez vous ?

mood
Publicité
Posté le 21-04-2001 à 15:09:44  profilanswer
 

n°26384
nicotine
Posté le 21-04-2001 à 16:38:10  profilanswer
 

t'as declaré quel taille max de fichier à uploader dans ton php.ini ?


---------------
Do androïds dream of electric sheep ?
n°26396
Bounga69
Wii will rock you
Posté le 21-04-2001 à 17:38:28  profilanswer
 

100000, c'est bien 100 Ko ?

n°26401
nicotine
Posté le 21-04-2001 à 18:22:18  profilanswer
 

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


---------------
Do androïds dream of electric sheep ?
n°26403
nicotine
Posté le 21-04-2001 à 18:38:09  profilanswer
 

tu peux mettre ton error_log d'apache stp ?


---------------
Do androïds dream of electric sheep ?
n°26428
Bounga69
Wii will rock you
Posté le 22-04-2001 à 00:49:07  profilanswer
 

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é.

n°26432
nicotine
Posté le 22-04-2001 à 01:38:05  profilanswer
 

les logs d'apache !!


---------------
Do androïds dream of electric sheep ?
n°26438
Bounga69
Wii will rock you
Posté le 22-04-2001 à 10:31:24  profilanswer
 

[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

n°26541
Lolo2k
Posté le 22-04-2001 à 20:33:30  profilanswer
 

meme pb de plantage de php (avec quickphp ou eazyphp) sous win pr mes scripts d'upload ...

n°26563
nicotine
Posté le 23-04-2001 à 00:03:05  profilanswer
 

- 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.


---------------
Do androïds dream of electric sheep ?
n°26579
Bounga69
Wii will rock you
Posté le 23-04-2001 à 08:45:11  profilanswer
 

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 ?


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

  php-envoie d'un fichier sur le net

 

Sujets relatifs
[vb] Modification d'un octet dans un fichier[W2k] Quel est l'équivalent du && (linux) pour un fichier .bat
[VC++]Récupérer des valeurs d'un fichier texte dans des variables !fichier texte en php
!!!!!!!!!!! Index Server + fichier exotiques !!!!!! ?Passer des variables dans un lien vers un autre fichier en PHP
fichier ZIP avec bad CRC dans un seul fichier....comment réparer?[C++] Moulinette vers un fichier .mdb
VBA Excel: recuperer le chemin(PATH) du fichier en coursutilisation et travail sur des fichier .wav sous java 1.3
Plus de sujets relatifs à : php-envoie d'un fichier sur le net


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