problème qd j'upload un fichier via un script PHP

problème qd j'upload un fichier via un script PHP - PHP - Programmation

Marsh Posté le 28-02-2005 à 14:09:29    

salut a tous,  
 
j'ai une petit problème lors de l'upload de fichiers (des photos en l'occurance) sur mon hebergement via un script php
 
tout se déroule très bien apparement, sauf ke a l'arrivée sur le server d'hébergement le fichier fait 0k (zéro) et il est donc illisible :(
 
si kelk'un a une idée... ca me sauverai
 
pour info voici le code du script que j'itilise :
 
------------------------
le formulaire d'upload :
------------------------
<html>
<head>
<title>Upload d'une image sur le serveur !</title>
</head>
<body>
<form enctype="multipart/form-data" action="PROC_upload.php" method="POST">
<font face="Verdana" size="2" color="#000000">
<b>Envoyer le fichier :</b>
</font>
<br>
Le fichier doit être inférieur à 100k<br><br>
et doit avoir une taille maximale de 640x480 px<br><br>
<input type="hidden" name="posted" value="1">
<input name="fichier" type="file">
<input type="submit" value="Uploader">
</FORM>
</body>
</html>  
 
---------------
les script php:
---------------
$target = "ftp://"mon_login":"mon_pass"@users.skynet.be/upload/"; // Repertoire cible
$extension = "jpg"; // Extension du fichier sans le .
$max_size = 100000; // Taille max en octets du fichier
$width_max = 640; // Largeur max de l'image en pixels
$height_max = 480;    // Hauteur max de l'image en pixels
 
//---------------------------------------------
// DEFINITION DES VARIABLES LIEES AU FICHIER
//---------------------------------------------
 
$nom_file = $_FILES['fichier']['name'];
$taille = $_FILES['fichier']['size'];
$tmp = $_FILES['fichier']['tmp_name'];
 
//----------------------
// SCRIPT D'UPLOAD
//----------------------
 
if($_POST['posted'])
{
 
// On vérifie si le champ est rempli
 
if($_FILES['fichier']['name'])
{
// On vérifie l'extension du fichier
 
  if(substr($nom_file,-3) == $extension)
  {
   // On récupère les dimensions du fichier
 
    $infos_img = getimagesize($_FILES['fichier']['tmp_name']);
       
   // On vérifie les dimensions et taille de l'image
 
    if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size))
    {
     // Si c'est OK, on teste l'upload
 
      if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$_FILES
['fichier']['name']))
      {
 
       // Si upload OK alors on affiche le message de réussite
 
        echo '<p align="center">';
        echo '<font face="Verdana" size="2" color="#FF0000">';
        echo '<b>Image uploadée avec succès !</b>';
        echo '</font>';
        echo '<hr>';
        echo '<b>Fichier :</b> '.$_FILES['fichier']['name'].'</br>';
        echo '<b>Taille :</b> '.$_FILES['fichier']['size'].' Octets</br>';
        echo '<b>Largeur :</b> '.$infos_img[0].' px</br>';
        echo '<b>Hauteur :</b> '.$infos_img[1].' px</br>';
        echo '<hr>';
        echo '<br><br>';
      }
       else
      {
 
       // Sinon on affiche une erreur système
 
        echo '<p align="center">';
        echo '<font face="Verdana" size="2" color="#FF0000">';
        echo '<b>Problème lors de l\'upload !</b><br><br><b>'.$_FILES['fichier']['error'].'</b>';
        echo '</font><br><br>';
      }
    }
     else
    {
 
     // Sinon on affiche une erreur pour les dimensions et taille de l'image
 
      echo '<p align="center">';
      echo '<font face="Verdana" size="2" color="#FF0000">';
      echo '<b>Problème dans les dimensions ou taille de l\'image !</b>';
      echo '</font><br><br>';
    }
  }
   else
  {
 
   // Sinon on affiche une erreur pour l'extension
 
    echo '<p align="center">';
    echo '<font face="Verdana" size="2" color="#FF0000">';
    echo '<b>Votre image ne comporte pas l\'extension .JPG !</b>';
    echo '</font><br><br>';
  }
}
else
{
 
// Sinon on affiche une erreur pour le champ vide
 
  echo '<p align="center">';
  echo '<font face="Verdana" size="2" color="#FF0000">';
  echo '<b>Le champ du formulaire est vide !</b>';
  echo '</font><br><br>';
}
}
?>
 
j'espère que ca vous dira quelke chose et que kelk'un pourra m'aider...
merci d'avance pour vos commentaires.

Reply

Marsh Posté le 28-02-2005 à 14:09:29   

Reply

Marsh Posté le 28-02-2005 à 14:12:31    

je ne pense pas que ce soit possible d'uploader un fichier comme ca
 
regarde du coté des fonctions ftp de php...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 28-02-2005 à 17:41:41    

Et de cette maniére t'as essayé ?  
$target = "upload/"; // Repertoire cible

Reply

Marsh Posté le 28-02-2005 à 18:44:58    

Tempus_Fugit a écrit :

Et de cette maniére t'as essayé ?  
$target = "upload/"; // Repertoire cible


 
oui j'ai essayer, ca dit ke l'upload a réussit mais je ne sais pas ou il va mettre le fichier :(
 
alors j'ai essayer avec : $target = "c:\";
la ca fonctionne il copie le fichier a la racine de mon lecteur et il a bien sa taille et est lisible.
 
c'est peutêtre l'hebergeur qui bloque kelkechose lors de l'upload, je vais essayer sur un autre hebergeur... lycos ou j'ai un autre site...


Message édité par Fredux_lg le 28-02-2005 à 18:46:30
Reply

Marsh Posté le 28-02-2005 à 19:26:05    

Et comme ca ?

Code :
  1. $target = $_SERVER["DOCUMENT_ROOT"].'/upload/';

Reply

Marsh Posté le 28-02-2005 à 19:28:31    

En fait faut bien vérifier si le dossier est bon donc fait un echo $_SERVER["DOCUMENT_ROOT"].'/upload/'; et vérifi s'il te méne bien au dossier que tu souhaites.

Reply

Marsh Posté le 28-02-2005 à 22:12:53    

Tempus_Fugit a écrit :

Et comme ca ?

Code :
  1. $target = $_SERVER["DOCUMENT_ROOT"].'/upload/';



 
oui avec ca ca fonctionne en local, ca upload dans le repertoir WWW la ou est installer easyPHP.
 
mais g fait un autre test comme je l'avais dit, j'ai essayer sur un autre hébergeur (Lycos) et la hoooo miracle, mon fichier est uploader sans aucun problème et il est intacte.
 
Est-ce possible que l'autre hebergeur ne l'écrive pas correctement pcq il ne supporte pas le PHP ?

Reply

Marsh Posté le 28-02-2005 à 22:51:06    

c'est que ton quotat sur skynet est atteint...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 28-02-2005 à 23:11:47    

Fredux_lg a écrit :

oui avec ca ca fonctionne en local, ca upload dans le repertoir WWW la ou est installer easyPHP.
 
mais g fait un autre test comme je l'avais dit, j'ai essayer sur un autre hébergeur (Lycos) et la hoooo miracle, mon fichier est uploader sans aucun problème et il est intacte.
 
Est-ce possible que l'autre hebergeur ne l'écrive pas correctement pcq il ne supporte pas le PHP ?


Okay, je n'avais pas du saisir. Si tu souhaites uploader sur un ftp distant tu vas devoir te réferer aux fonctions ftp http://fr.php.net/manual/fr/ref.ftp.php
 
Bon si effectivement j'ai une fois de plus pas pigé.
 
Je te dirai que, certains hebergeurs ne permettent pas l'upload de fichier au dessus d'une certaine taille par exemple. Enfin la meilleure solution est de poser la question a ton hebergeur ;)


Message édité par Tempus_Fugit le 28-02-2005 à 23:14:00
Reply

Marsh Posté le 01-03-2005 à 09:42:22    

KangOl a écrit :

c'est que ton quotat sur skynet est atteint...


 
non pas du tout g encore plein de place, c'est pas a cause de ca...

Reply

Marsh Posté le 01-03-2005 à 09:42:22   

Reply

Marsh Posté le 09-03-2005 à 00:01:29    

Coucou !
Je pense que la fonction "copy" devrait t'intéresser ! ;-)

Reply

Marsh Posté le 14-03-2005 à 12:16:40    

Fredux_lg a écrit :

salut a tous,  
j'ai une petit problème lors de l'upload de fichiers (des photos en l'occurance) sur mon hebergement via un script php


 
    Salut !
 
J'ai eu le même problème que toi, et il était dû à la fonction move_uploaded_file. Elle semble marcher, is_uploaded_file renvoie true, et pourtant le fichier n'apparaissait pas dans mon répertoire d'upload. A la pace j'ai utilisé un  
 

copy  ($_FILES["nom_fichier"]["tmp_name"], $new_name);
unlink($_FILES["nom_fichier"]["tmp_name"]);


 
et là tout fonctionnne.  :)

Reply

Sujets relatifs:

Leave a Replay

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