Page 1 sur 1

Problème d'envoi/rename d'images

Posté : 24 janv. 2015, 19:10
par lacfab
Bonjour,

Voilà je veux pouvoir envoyer une image et que mon script la renomme. En plus un enregistrement en base de donnée est prévu, mais ce n'est pas le problème pour le moment. Actuellement j'ai une erreur 2, je ne trouve pas pourquoi. Un peu d'aide me serait vraiment utile, c'est probablement un truc que j'ai devant le nez mais que je ne vois pas :'(
case "histoirePhoto":
		if (isset($_GET["bibe_id"]) && is_numeric($_GET["bibe_id"])){
			echo "<br /><br /><br /><br /><br /><FORM ACTION='mapage.php?page=histoirePhotoSuite&bibe_id=".$_GET["bibe_id"]."' METHOD='POST' ENCTYPE='multipart/form-data'>
			<INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=80000>
			<INPUT TYPE='file' NAME='monfichier' size=60><br /><br />
			<INPUT TYPE='submit' value='Envoi'>
			</FORM>";
		}
		else{
			echo "ERREUR 3"; 
		}
	break;
	case "histoirePhotoSuite":
		echo "<br /><br /><br />";
		if (isset($_GET["bibe_id"]) && is_numeric($_GET["bibe_id"])){
			// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
			if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0){
					// Testons si le fichier n'est pas trop gros
					if ($_FILES['monfichier']['size'] <= 1000000){
							// Testons si l'extension est autorisée
							$infosfichier = pathinfo($_FILES['monfichier']['name']);
							$extension_upload = $infosfichier['extension'];
							$extensions_autorisees = array('JPG', 'jpg', 'jpeg', 'gif', 'png');
							$name = $infosfichier['filename'];
							$requete= mysql_query("SELECT bibpho_id FROM biblio_etablissement_photo ORDER BY bibpho_id desc LIMIT 0,1");
							$bibpho_id = mysql_result($requete,0,"bibpho_id");
							$bibpho_id++;
							$file = '' .$bibpho_id. '' .$_GET['bibe_id'].'.'.$extension_upload;
							$width=$_FILES['monfichier']['width'];
							$height=$_FILES['monfichier']['height'];
			 
							if (in_array($extension_upload, $extensions_autorisees)){
								// On peut valider le fichier et le stocker définitivement
								move_uploaded_file($_FILES['monfichier']['tmp_name'], 'actus/histoire/'.$file);
								echo $file;
								echo "L'envoi de votre image bien été effectué !";
								$requeteLogo = mysql_query("INSERT INTO biblio_etablissement_photo (bibpho_bibe_id, bibpho_image, bibpho_width, bibpho_height, bibpho_traceur) VALUES ('".$_GET['bibe_id']."', '".$file."', '".$width."', '".$height."', '".$_SESSION['Id']."')") or die (mysql_error());
							}
							else{
								echo "ERREUR : seuls les extensions jpg, jpeg, gif, png sont acceptés.";
							}
					}
					else{
						echo "Le fichier est trop volumineux. Poids max 1 Mo";
					}
			}
			else{
				echo "ERREUR 2"; 
			}			
		}
		else{
			echo "ERREUR 1"; 
		}			
Merci d'avance

Re: Problème d'envoi/rename d'images

Posté : 24 janv. 2015, 19:44
par tof73
essaie avec
if (isset($_FILES['monfichier']) && $_FILES['monfichier']['error'] == 0){

Re: Problème d'envoi/rename d'images

Posté : 24 janv. 2015, 22:38
par lacfab
"ERREUR 2"
8-|

Sinon j'ai avancé (grâce à toi), j'ai viré la deuxième condition. Cette fois il va jusqu'à l'enregistrement dans la base de donnée, mais l'image n'est pas dans son répertoire (elle n'est nul part quoi)
case "histoirePhoto":
                if (isset($_GET["bibe_id"]) && is_numeric($_GET["bibe_id"])){
                        echo "<br /><br /><br /><br /><br /><FORM ACTION='mapage.php?page=histoirePhotoSuite&bibe_id=".$_GET["bibe_id"]."' METHOD='POST' ENCTYPE='multipart/form-data'>
                        <INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=80000>
                        <INPUT TYPE='file' NAME='monfichier' size=60><br /><br />
                        <INPUT TYPE='submit' value='Envoi'>
                        </FORM>";
                }
                else{
                        echo "ERREUR 3";
                }
        break;
        case "histoirePhotoSuite":
                echo "<br /><br /><br />";
                if (isset($_GET["bibe_id"]) && is_numeric($_GET["bibe_id"])){
                        // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
                        if (isset($_FILES['monfichier'])){
                                        // Testons si le fichier n'est pas trop gros
                                        if ($_FILES['monfichier']['size'] <= 1000000){
                                                        // Testons si l'extension est autorisée
                                                        $infosfichier = pathinfo($_FILES['monfichier']['name']);
                                                        $extension_upload = $infosfichier['extension'];
                                                        $extensions_autorisees = array('JPG', 'jpg', 'jpeg', 'gif', 'png');
                                                        $name = $infosfichier['filename'];
                                                        $requete= mysql_query("SELECT bibpho_id FROM biblio_etablissement_photo ORDER BY bibpho_id desc LIMIT 0,1");
                                                        $bibpho_id = mysql_result($requete,0,"bibpho_id");
                                                        $bibpho_id++;
                                                        $file = ''.$_GET['bibe_id'].'_'.$bibpho_id.'.'.$extension_upload;
                                                        $width=$_FILES['monfichier']['width'];
                                                        $height=$_FILES['monfichier']['height'];
                         
                                                        if (in_array($extension_upload, $extensions_autorisees)){
                                                                // On peut valider le fichier et le stocker définitivement
                                                                move_uploaded_file($_FILES['monfichier']['tmp_name'], 'actus/histoire/'.$file);
                                                                echo $file;
                                                                echo "L'envoi de votre image bien été effectué !";
                                                                $requeteLogo = mysql_query("INSERT INTO biblio_etablissement_photo (bibpho_bibe_id, bibpho_image, bibpho_width, bibpho_height, bibpho_traceur) VALUES ('".$_GET['bibe_id']."', '".$file."', '".$width."', '".$height."', '".$_SESSION['Id']."')") or die (mysql_error());
                                                        }
                                                        else{
                                                                echo "ERREUR : seuls les extensions jpg, jpeg, gif, png sont acceptés.";
                                                        }
                                        }
                                        else{
                                                echo "Le fichier est trop volumineux. Poids max 1 Mo";
                                        }
                        }
                        else{
                                echo "ERREUR 2";
                        }                      
                }
                else{
                        echo "ERREUR 1";
                }    
break;

Donc si déjà ça "poursuis sa life" en enlevant le $_FILES['monfichier']['error'] c'est qu'une erreur est présente. J'ai fais un echo dessus et c'est l'erreur 2 (hin hin tout se recoupe LOL) qui correspond à

UPLOAD_ERR_FORM_SIZE
Valeur : 2; Le fichier excède le poids autorisé par le champ MAX_FILE_SIZE s'il a été donné

Or mon fichier de test est tout léger ... je regarde.

edit : SAPERLIPOPETTE !!!
<INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=80000>

Re: Problème d'envoi/rename d'images

Posté : 24 janv. 2015, 23:06
par lacfab
YESSSS ça marche !!!!

Bon il me reste à récupérer la largeur et la hauteur mais ce n'est pas le plus grave.

Merci quand même tof73 tu m'as mis la puce à l'oreille sur le [error] ;)