Uploader une image

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Uploader une image

par AB » 22 janv. 2007, 15:11

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.

par Sefrioui » 20 janv. 2007, 20:10

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();
		
		?>

par AB » 18 janv. 2007, 22:47

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?

par Sefrioui » 18 janv. 2007, 19:37

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

par Sefrioui » 18 janv. 2007, 18:28

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

par Ryle » 15 janv. 2007, 21:38

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

par Sefrioui » 15 janv. 2007, 19:19

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

par Ultim4T0m » 15 janv. 2007, 19:06

Bonjour,

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

Uploader une image

par Sefrioui » 15 janv. 2007, 19:00

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