Multi Upload PHP - A l'aide !!!!

Fermé
LoFoF - 15 janv. 2010 à 17:35
 LoFoF - 15 janv. 2010 à 21:56
Bonjour tous le monde,

j'ai un script php pour Uploader 2 fichiers images, la premiere image est envoyée sur le serveur, et la 2éme il ne se passe rien !

Voici le code :
function envoi_fichier($fichier, $dest)
{
	//	---------------------------------------------
	//	Pure PHP Upload version 1.1
	//	-------------------------------------------
	
	
	if (phpversion() > "4.0.6") {
		$HTTP_POST_FILES = &$_FILES;
	}
	define("MAX_SIZE",500000);
	define("DESTINATION_FOLDER", $dest);
	$_accepted_extensions_ = "jpg";
	if(strlen($_accepted_extensions_) > 0){
		$_accepted_extensions_ = @explode(",",$_accepted_extensions_);
	} else {
		$_accepted_extensions_ = array();
	}
	$_file_ = $HTTP_POST_FILES[$fichier];
	
	
	if(is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES[$fichier]['error'] == 0){
		$errStr = "0";
		$_name_ = $_file_['name'];
		$_type_ = $_file_['type'];
		$_tmp_name_ = $_file_['tmp_name'];
		$_size_ = $_file_['size'];
		if($_size_ > MAX_SIZE && MAX_SIZE > 0){
			$errStr = "Fichier trop volumineux";
		}
		$_ext_ = explode(".", $_name_);
		$_ext_ = strtolower($_ext_[count($_ext_)-1]);
		if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
			$errStr = "Extension non valide";
		}
		if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){
			$errStr = "Dossier de destination non valide";
		}
		if(empty($errStr)){
			if(move_uploaded_file($_tmp_name_,DESTINATION_FOLDER . "/" . $_name_)){
				$errStr = "0";
			} 
			$errStr = "0";
		}
	}
	else{
		$errStr = "Erreur envoi fichier temporaire - Fichier Temp = ".$_tmp_name_." Fichier Dest = ".DESTINATION_FOLDER . "/" . $_name_;
	}
	
	return $errStr;
	//	---------------------------------------------
	//	Pure PHP Upload version 1.1
	//	-------------------------------------------
	
}

	$EnvoiImgMini = envoi_fichier('addArt_imgMini', '../images/photos/miniatures');
	$EnvoiImgGD  = envoi_fichier('addArt_imgGd', '../images/photos/grandes');
	
	
	//Envoi du fichier image mini	
	if($EnvoiImgMini == '0'){ //Si ok image mini
		
		
		
		//Envoi du fichier image grande	
		if($EnvoiImgGD == '0'){ //Si ok image grande
				
	
			  mysql_select_db($database_connect, $connect);
			  $Result1 = mysql_query($insertSQL, $connect) or die(mysql_error());
			  
			  
			  $insertGoTo = "add_product.php";
			  if (isset($_SERVER['QUERY_STRING'])) {
				$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
				$insertGoTo .= $_SERVER['QUERY_STRING'];
			  }
			  header(sprintf("Location: %s", $insertGoTo));
			  
		}
		else{ // Si Erreur image grande
		
		
			$MiniFile = '../images/photos/miniatures/'.$_FILES['addArt_imgMini']['name'];
			
			if(file_exists($MiniFile)) unlink($MiniFile);
	
			$insertGoTo = "error_postProduct.php?type=grande&image=".$_FILES['addArt_imgGd']['name']."&erreur=".envoi_fichier('addArt_imgGd', '../images/photos/grandes/');
			if (isset($_SERVER['QUERY_STRING'])) {
			$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
			$insertGoTo .= $_SERVER['QUERY_STRING'];
			}
			header(sprintf("Location: %s", $insertGoTo));
		
		
		}
		
		
		
		
		
	}
	else{ // Si Erreur image mini
		$insertGoTo = "error_postProduct.php?type=mini&image=".$_FILES['addArt_imgMini']['name']."&erreur=".envoi_fichier('addArt_imgMini', '../images/photos/miniatures/');
		if (isset($_SERVER['QUERY_STRING'])) {
		$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
		$insertGoTo .= $_SERVER['QUERY_STRING'];
		}
		header(sprintf("Location: %s", $insertGoTo));
	}


Merci d'avance pour votre aide ! je commence à m'arracher les cheuveux, j'en ai plus beaucoup :( lol
A voir également:

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
15 janv. 2010 à 19:15
Bonsoir,

il faudrait que tu mettes un echo pour voir si tu passes bien là:

if($EnvoiImgMini == '0'){ //Si ok image mini

echo "Return de la fonction: "$EnvoiImgMini;


et ce qui me surprend c'est cette ligne:

$insertGoTo = "error_postProduct.php?type=mini&image=".$_FILES['addArt_imgMini']['name']."&erreur=".envoi_fichier('addArt_imgMini', '../images/photos/miniatures/');

ou tu rappeles la fonction envoi_fichier pour avoir le message d'erreur si elle n'a pas marché ,

mets plutot:

&erreur=".$EnvoiImgMini
0
Salut Alain,

Merci pour ton aide, j'ai appliqué les corrections que tu m'as indiqué, c'est vrai que ce n’était pas très logique ;)

J’ai trouvé la solution !

C’est le
define("DESTINATION_FOLDER", $dest);
qui apparemment garde en mémoire le premier chemin passé sans l'écraser lorsque qu'on lui passe le 2éme au second appel de la fonction
envoi_fichier


Merci à toi et bonne soirée ;)
0