Page 1 sur 1

Uploader une image

Posté : 15 janv. 2007, 19:00
par Sefrioui
salut,

je me coince pour corriger des erreurs sur mon code des images, il donne cette erreur:
Array ( [img] => Array ( [name] => bassam.gif [type] => [tmp_name] => [error] => 3 [size] => 
ya quelqun qui peut m expliquer c est quoi cette ligne avec: print_r($_FILES);

Posté : 15 janv. 2007, 19:06
par Ultim4T0m
Bonjour,

C'est ce qui s'affiche lorsque tu fais print_r($_FILES); c'est ça ?

Posté : 15 janv. 2007, 19:19
par Sefrioui
je code ca:
if(empty($avatar)){
echo "Pas de fichier a uploader<br/>";
}
et donne toujours Pas de fichier a uploader meme si le champs avatar est charge

Posté : 15 janv. 2007, 21:38
par Ryle
A quoi correspond $avatar ? est ce un champ de type "file" de ton formulaire ?
as-tu bien défini l'enctype dans le formulaire ?

La fonction print_r permet de voir le contenu d'un tableau (index et valeurs). En faisant un print_r($_FILES) tu peux ainsi voir les infos des fichiers uploadés.

En l'occurence, l'index error contient la valeur 3. Il y a donc eu une erreur lors du transfert du fichier
UPLOAD_ERR_PARTIAL
Valeur : 3. Le fichier n'a été que partiellement téléchargé.
Ton fichier ne serait-il pas supérieur à la taille d'upload max du serveur ?

Explication sur les messages d'erreurs de chargement de fichiers

Posté : 18 janv. 2007, 18:28
par Sefrioui
A quoi correspond $avatar ? est ce un champ de type "file" de ton formulaire ?
c est le nom du champs dans form:
<input type="file" name="img">
as-tu bien défini l'enctype dans le formulaire ?
<form method="POST" name="upload_img" enctype="multipart/form-data" action="check.php">
UPLOAD_ERR_PARTIAL
Valeur : 3. Le fichier n'a été que partiellement téléchargé.
Ton fichier ne serait-il pas supérieur à la taille d'upload max du serveur ?
[/quote]
sur free.fr, taille max est: upload_max_filesize 2M 2M.

j ai mis:
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="999999"> presque 1 MO.
avec:
$MaxFileSize = 999999;
elseif ($FileSize > $MaxFileSize){
echo $ErrorMessage7.'&nbsp;'.$MaxFileSize;
echo $ErrorReturn;
}

Posté : 18 janv. 2007, 19:37
par Sefrioui
Une erreur est survenue:

Warning: move_uploaded_file(images/keyboard_pic.gif) [function.move-uploaded-file]: failed to open stream: Not a directory in ............... check.php on line 74

avec ligne74:
    $move = move_uploaded_file($TempName, $Destination.$FileName);
les variables sont:
$FileName = $_FILES['img']['name'];  // original name of the file on the client machine
$FileSize = $_FILES['img']['size'];  // size, in bytes, of the uploaded file. 
$TempName = $_FILES['img']['tmp_name']; //The temporary filename of the file in which the uploaded file was stored on the server. 

$MaxFileSize = 100000;
$Destination = 'images/';
$Max_Width = 500; //largeur
$Max_Height = 500; //longueur

Posté : 18 janv. 2007, 22:47
par AB
D'après le dernier message d'erreur
-soit le répertoire n'existe pas sur le serveur distant
-soit tu n'as pas donné les droits nécessaires en écriture dans ce répertoire.

Cela peut-être autre chose mais as-tu déjà vérifié ces deux point?

Posté : 20 janv. 2007, 20:10
par Sefrioui
D'après le dernier message d'erreur
-soit le répertoire n'existe pas sur le serveur distant
-soit tu n'as pas donné les droits nécessaires en écriture dans ce répertoire.

Cela peut-être autre chose mais as-tu déjà vérifié ces deux point?
je pense que c'est OUI:
<?php
// include ur config file
include ("config.php");

// post all vars
if(isset($_POST['date'])) $date = $_POST['date'];
else $date = '';
if(isset($_POST['img'])) $img = $_POST['img'];
else $img = '';
if(isset($_POST['url'])) $url = $_POST['url'];
else $url = '';

// require vars
$Destination = "images/"; 				// uploads destinations
$Allow_Ext="(gif|jpg|jpeg|png|bmp)"; 	// Allow extensions
$MaxFileSize = 999999; 					// max size in MO
$WidthMax  = 100;        				// max width in px
$HeightMax = 100;        				// max height in px

$FileName = $_FILES['img']['name']; 	// originale file name
$FileSize = $_FILES['img']['size'];		// original file size
$TempName = $_FILES['img']['tmp_name']; // temporary name in the server

// if folder doesnt exist, create it
   function RecursiveMkdir($Destination)
   {
      if (!file_exists($Destination))
       {
               RecursiveMkdir(dirname($Destination));

           mkdir('images', 0777);
       }
   }
// to insert into DB
$url = $Destination.$FileName;


//ext verif 1
$temp=explode('.',$FileName);				
$extension=strtolower($temp[count($temp)-1]);

//if folder exists, ignore mkdir
   if (!file_exists("images"))
   {
           RecursiveMkdir("images");
   }

//verif filename is loaded or not
if(empty($FileName)){
echo $ErrorMessage15;
echo $ErrorReturn;
}
// verif size
elseif ($FileSize > $MaxFileSize){
echo $ErrorMessage7.'&nbsp;'.$MaxFileSize;
echo $ErrorReturn;
}

// ext verif 2
elseif (!eregi($Allow_Ext,$extension)){
echo $ErrorMessage8;
echo $ErrorReturn;
}

// verif file exists into directory or not
elseif (file_exists($Destination.$img)) {
echo $ErrorMessage9;
echo $ErrorReturn;
} 
// everythin' is cool so load
else {

    $move = move_uploaded_file($TempName, $url);
if ($move)
{
			
//connect + insert
$connection = mysql_connect("$dbhost", "$dblogin", "$dbpassword") or die ($ErrorConnection);
$db = mysql_select_db($db_name, $connection) or die(mysql_error());
$sql = "INSERT INTO $gallery_table VALUES ('','$jour/$mois/$year','$img','$url_img')";
$result = mysql_query($sql,$connection) or die ($ErrorInsert);
// success
echo $ErrorMessage3.'<br>';
	}
else
			{
			echo $ErrorMessage4;
				}
				}
	mysql_close();
		
		?>

Posté : 22 janv. 2007, 15:11
par AB
Bonjour,

Sefrioui, tu me dis que tu penses que OUI en montrant ton code...
Il te serait très simple de vérifier avec ton logiciel FTP si effectivement le dossier "images" a été créé et s'il bénéficie des droits adéquats.

Cela permettrait d'éclaicir les choses.