mettre un fichier sur serveur

mettre un fichier sur serveur - PHP - Programmation

Marsh Posté le 10-10-2005 à 17:46:58    

Bonjour,
je souhaite transférer sur mon serveur des fichiers. Voici mon script :
 
> <?php
>  
> // inclusion du fichier qui contient les fonctions générales
> include("fonctions.inc" );
>  
> // traitement du formulaire
> if (isset($HTTP_POST_VARS["OK"])) {
>  
>  // récupérer les informations sur le fichier
>  $informations = $HTTP_POST_FILES["fichier"];
>  
>  // en extraire
>  //  - son nom
>  $nom = valeur_saisie($informations["name"]);
>  //  - son type MIME
>  $type_mime = $informations["type"];
>  //  - sa taille
>  $taille = $informations["size"];
>  //  - l'emplacement du fichier temporaire
>  $fichier_temporaire = $informations["tmp_name"];
>  
>  // contrôles et traitement
>  if ($nom == "" ) {
>  
>   // pas de nom => pas de fichier saisi
>   $message = "Pas de fichier saisi.";
>  
>  } elseif ($fichier_temporaire == "none" ) {
>  
>   // fichier temporaire = none => fichier non transféré
>   // car inexistant ou trop gros
>   $message  = "Pas de fichier transféré ";
>   $message .= " (problème de nom ou de taille).";
>  
>  } else {
>  
>   // fichier bien reçu
>  
>   // déterminer sa destination finale
>   $destination = "C://Program Files//EasyPHP1-8//tmp//$nom";
>  
>   // copier le fichier temporaire (tester le résultat)
>   if (copy($fichier_temporaire,$destination)) {
>  
>    // copie OK => mettre un message de confirmation
>    $message  = "Transfert terminé - Fichier = $nom – ";
>    $message .= "Taille = $taille octets – ";
>    $message .= "Type MIME = $type_mime.";
>  
>   } else {  
>  
>    // problème de copie => mettre un message d'erreur
>    $message = "Problème de copie sur le serveur.";
>  
>   }
>  
>  }
> }
>  
> ?>
>  
> <HTML>
> <HEAD><TITLE>Saisie</TITLE></HEAD>
> <BODY>
>  
> <FORM METHOD="POST"  
>   ENCTYPE="multipart/form-data">
> <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="204800">
> Fichier : <INPUT TYPE="file" NAME="fichier"><BR>
> <INPUT TYPE="submit" NAME="OK" VALUE="OK">
> </FORM>
>  
> <?php
> echo vers_page($message);
> ?>
>  
> </BODY>
> </HTML>
 
Lorsque je valide mon formulaire, j'ai en réponse "Problème de copie sur le serveur".
J'utilise la dernière version d'easyphp.
Merci de votre aide.

Reply

Marsh Posté le 10-10-2005 à 17:46:58   

Reply

Marsh Posté le 10-10-2005 à 17:51:07    

la destination :

Code :
  1. c:/ etc...

c'est possible? pas sur avec la fonction copy...
 
essaye ../ a la place


Message édité par texaff le 10-10-2005 à 17:51:38
Reply

Marsh Posté le 10-10-2005 à 19:18:02    

Pour poster du code, il y a la balise [ cpp ] (sans les espace)
Ca permet d'avoir des numéros de ligne de voir dessuite où commence et finis le code et de copier coller le code sans avoir à le retravailler afin de le tester si besoin.
 
Là, on dirait du code sorti d'un mail et c'est vraiment le bordel pour le lire en oubliant les "> " qui trainent en début de ligne.
 
 
 
Sinon, petite remarque sur le code : dans les chaines de caractéres ciommencant par un " , il faut certe doubler les "\" mais pas les "/". Ca risque pas de marcher avec un chemin d'accés pareil. Mais vu que ton code est dur à lire à cause de tes "> ", j'ai pas cherché à trouver d'autres erreurs.


Message édité par omega2 le 10-10-2005 à 19:18:16
Reply

Marsh Posté le 11-10-2005 à 15:39:36    

Code :
  1. <?php
  2. // inclusion du fichier qui contient les fonctions générales
  3. include("fonctions.inc" );
  4. // traitement du formulaire
  5. if (isset($HTTP_POST_VARS["OK"])) {
  6. // récupérer les informations sur le fichier
  7. $informations = $HTTP_POST_FILES["fichier"];
  8. // en extraire
  9. //  - son nom
  10. $nom = valeur_saisie($informations["name"]);
  11. //  - son type MIME
  12. $type_mime = $informations["type"];
  13. //  - sa taille
  14. $taille = $informations["size"];
  15. //  - l'emplacement du fichier temporaire
  16. $fichier_temporaire = $informations["tmp_name"];
  17. // contrôles et traitement
  18. if ($nom == "" ) {
  19.  // pas de nom => pas de fichier saisi
  20.  $message = "Pas de fichier saisi.";
  21. } elseif ($fichier_temporaire == "none" ) {
  22.  // fichier temporaire = none => fichier non transféré
  23.  // car inexistant ou trop gros
  24.  $message  = "Pas de fichier transféré ";
  25.  $message .= " (problème de nom ou de taille).";
  26. } else {
  27.  // fichier bien reçu
  28.  // déterminer sa destination finale
  29.  $destination = "C://Program Files//EasyPHP1-8//tmp//$nom";
  30.  // copier le fichier temporaire (tester le résultat)
  31.  if (copy($fichier_temporaire,$destination)) {
  32.   // copie OK => mettre un message de confirmation
  33.   $message  = "Transfert terminé - Fichier = $nom – ";
  34.   $message .= "Taille = $taille octets – ";
  35.   $message .= "Type MIME = $type_mime.";
  36.  } else
  37.   // problème de copie => mettre un message d'erreur
  38.   $message = "Problème de copie sur le serveur.";
  39.  }
  40. }
  41. }
  42. ?>
  43. <HTML>
  44. <HEAD><TITLE>Saisie</TITLE></HEAD>
  45. <BODY>
  46. <FORM METHOD="POST" 
  47. ENCTYPE="multipart/form-data">
  48. <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="204800">
  49. Fichier : <INPUT TYPE="file" NAME="fichier"><BR>
  50. <INPUT TYPE="submit" NAME="OK" VALUE="OK">
  51. </FORM>
  52. <?php
  53. echo vers_page($message);
  54. ?>
  55. </BODY>
  56. </HTML>


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
Reply

Marsh Posté le 11-10-2005 à 15:47:47    

\\ pour l'arborescence dans le system de fichiers de windows et non pas //
 
$HTTP_POST_VARS et $HTTP_POST_FILES sont depreciées au profit de $_POST et $_FILES depuis un bon moment.

Reply

Sujets relatifs:

Leave a Replay

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