Upload photos

Résolu
cs_doberman_420 Messages postés 22 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 7 août 2007 - 26 juil. 2007 à 23:04
theguitou Messages postés 75 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 14 janvier 2009 - 27 juil. 2007 à 12:19
Bonjour à tous,

  J'ai un petit probléme pour uploader les photos de mes annonces sur l'hébergeur payant que j'utilise depuis une semaine j'utilisais avant pour développer le site, l'hébergement gratuit "ifrance" et ça marchait. Et j'ai eu quelques autres bugs que je régle au fur et à mesure.

Alors que faire?  y a t-il une chose qui différe?

Mon fichier upload se trouve dans : membre/upload.php
Dites moi si vous avez besoin de plus d'informations

j'ai changé l'attribut du dossier "membre" qui était en 755 en 777
il y a un mieux la photo est enregistrée dans mon dossier et il me redirige sur ma page d'acceuil. ce que je voulais!

Par contre le script doit faire un double de la photo et la renomée et inscrire son nom dans ma table an_annonce, ce qu'il ne fait pas!

Voila la partie du script qui gére cette fonction et merci pour vos futures réponses, Cédric:

if (phpversion() > "4.0.6") {
   $HTTP_POST_FILES = &$_FILES;
}
define("MAX_SIZE",800000);
define("DESTINATION_FOLDER", "images");
define("no_error", "../index.php");
define("yes_error", "upload.php");
$_accepted_extensions_ = "jpg,jpeg,JPG,JPEG,gif,GIF";
if(strlen($_accepted_extensions_) > 0){
   $_accepted_extensions_ = @explode(",",$_accepted_extensions_);
} else {
   $_accepted_extensions_ = array();
}
if (isset($HTTP_POST_FILES['file'])){
$_file_ = $HTTP_POST_FILES['file'];
if(is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES['file']['error'] == 0){
   $errStr = "";
   $_name_ = $_file_['name'];
   $_type_ = $_file_['type'];
   $_tmp_name_ = $_file_['tmp_name'];
   $_size_ = $_file_['size'];
   if($_size_ > MAX_SIZE && MAX_SIZE > 0){
      $errStr = "Votre photo est trop lourde";
   }
   $_ext_ = explode(".", $_name_);
   $_ext_ = strtolower($_ext_[count($_ext_)-1]);
   if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
      $errStr = "l extension n est pas prise en compte";
   }
   if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){
      $errStr = "La destination de la photo est incorecte";
   }
   if(empty($errStr)){
      //je supprime les accents du nom de la photo--------------------------
   function supprimeAccents($chaine){
 
      $tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ ";
 
      $replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn_";
 
      return(strtr($chaine,$tofind,$replac));
 
 }$_name_=supprimeAccents($_name_);
 //fin de supprimer les accents-------------------------------
// un nouveau nom pour les photos en double
$nombre=1;
    $repertoire_upload="images/";
             $nouveau_nom=$_name_."";

while (file_exists($repertoire_upload.$nouveau_nom))
{
$nombre++; // on incremente le nombre tant que le nom du fichier existe
$nouveau_nom=$nombre.$nouveau_nom;
}// fin while
 //ok j'enregistre la photo dans le dossier
if(@copy($_tmp_name_,DESTINATION_FOLDER . "/" . $nouveau_nom)){
$_POST['idannonce'];
$idannonce=$_POST['idannonce'];
mysql_select_db($database_connexion, $connexion);
 $updateSQL = "UPDATE an_annonce SET photo='$nouveau_nom' WHERE idannonce='$idannonce'";
             mysql_select_db($database_connexion, $connexion);
 $Result1 = mysql_query($updateSQL, $connexion) or die(mysql_error());

         header("Location: " . no_error);
      } else {
         header("Location: " . yes_error);
      }
   } else {
      header("Location: " . yes_error);
   }
}
}
?>

3 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
27 juil. 2007 à 00:36
Hello,

si je comprends bien, tu arrives à copier une image dans un répertoire, mais pas dans un autre, alors que ça marchait avant ? effectivement ça ressemble à un pb de chmod. Il faut parfois un peu de temps avant que le changement soit effectif, c'est peut-être ça.
sinon re-teste ton script en local et vois si ça vient de lui ou de l'hébergeur.

à+
3
cs_doberman_420 Messages postés 22 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 7 août 2007
27 juil. 2007 à 01:29
Re bonsoir,

 Et bien en fait l'image original est copiée dans le répertoire et crée une copie de l'original en la renomant dans le méme répertoire puis le nom du double doit étre enregistré dans ma base de données pour pouvoir l'appeler dans l'annonce.


 En local le script marche trés bien, comme tu le dis je vais attendre un petit moment voir si ça évolue.

Merci beaucoup Evangun et merci a tous!
0
theguitou Messages postés 75 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 14 janvier 2009 35
27 juil. 2007 à 12:19
Salut, je sais pas trop d'ou viennent tes problèmes mais pour déplacer un fichier uploadé, il y a une fonction toute faite, et surtout sécurisé (meme si tu dis que ton truc marche) : move_uploaded_file.

(http://www.php.net/move_uploaded_file)
0
Rejoignez-nous