Problème d'upload d'image

Résolu/Fermé
rubikspirit - 21 sept. 2010 à 12:00
 rubikspirit - 21 sept. 2010 à 15:37
Bonjour à tous !


Voilà, je suis en train de développer un site Internet dont une partie qui sera dédiée à l'envoi de photos souvenirs, soirées en tout genre et tout.
J'ai pour cela installé un script d'upload de fichier avec un redimensionnement des images à la fin pour éviter des stocker des images trop grandes sur le serveur.

J'ai testé quelques images, pour certaines ça marche, mais pour d'autres, l'envoi ne marche pas, j'ai un message de retour qui me dit que l'image n'est pas une image jpeg. Pourtant, mon script autorise bien le Jpeg, Jpg, enfin tout ça quoi ^^

Pourriez vous regarder de plus près mon script et me dire ce qui pourrait faire déconner le script ?

Le voici :
<?php
// Dossier de destination du fichier
$folder = "images/soirees/";

// Tableau array des différents types
$allowed_types = array("image/pjpeg", "image/jpeg", "image/JPEG", "image/JPG", "image/jpg");

// Variables récupérées par methode POST du formulaire
$fname = $HTTP_POST_FILES['fichier']['name'];
$ftype = $HTTP_POST_FILES['fichier']['type'];
$fsize = $HTTP_POST_FILES['fichier']['size'];
$ftmp = $HTTP_POST_FILES['fichier']['tmp_name'];

// Récupération des dimensions
$dim = getimagesize($ftmp); 

// Diverses test afin de savoir si :

if (!in_array($ftype, $allowed_types)) // Le fichier n'est pas une image jpeg
{
	echo '<p align="center">Format de fichier incorrecte. Uniquement .jpeg</p>';
}
else if(file_exists($folder."".$fname)) // Le fichier existe déjà
{
	echo '<p align="center">Fichier déjà existant</p>';
}
else // Si tout va bien, c'est bien déroulé
{
	
	// Redimensionnement

	$height = 600;
	$reduction = ( ($height * 100)/$dim[1] );
	$width = ( ($dim[0] * $reduction)/100 );

	// Création de la miniature 

	$source = imagecreatefromjpeg($ftmp); // La photo est la source
	$folder = "images/soirees/"; // Dossier de destination de la miniature
	$destination = imagecreatetruecolor($width, $height); // On crée la miniature vide

	// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
	$largeur_source = imagesx($source);
	$hauteur_source = imagesy($source);
	$largeur_destination = imagesx($destination);
	$hauteur_destination = imagesy($destination);

	// On crée la miniature
	imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

	// On enregistre la miniature
	imagejpeg($destination,''.$folder.''.$fname.'');

	echo'<p align="center">Upload de l\'image Ok<br /><br />';
	
	// Enregistrement en base de données
	if(isset($_POST['description']))      $description=$_POST['description'];
	else      $description="";
			
	$ID_auteur=$_POST['ID_auteur'];
	$ID_parent=$_POST['ID_parent'];
	$date=$_POST['date'];
	$photoname=$_FILES['photo']['name'];
	
	$description = str_replace("//'","''",addslashes($description));
	$db_part = mysql_connect($localhost,$login,$password)  or die('Erreur de connexion '.mysql_error());
	mysql_select_db('aekbfr_gallery',$db_part)  or die('Erreur de selection '.mysql_error()); 
	$sql_part = "INSERT INTO images(ID_image, image, description, ID_auteur, date, ID_parent) VALUES('','$fname','$description','$ID_auteur','$date','$ID_parent')"; 
	mysql_query($sql_part) or die('Erreur SQL !'.$sql_part.'<br>'.mysql_error());
							
	echo'<script type="text/javascript">window.setTimeout("location=(\'';
	if(isset($_GET['ID_parent'])) {
	echo'galerie.php?ID_parent='.$_GET['ID_parent'].'';
	} else {
	echo'galerie.php';
	}
	echo'\');",0)</script>';
}
?>


Voila, voilou, l'erreur en question est le "Format de fichier incorrecte. Uniquement .jpeg".

Merci à tous !!




A voir également:

3 réponses

Vardok Messages postés 359 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 24 octobre 2014 133
21 sept. 2010 à 12:03
Bonjour,
Ca ne serait pas un problème de taille ?
0
Je ne sais pas, peut être mais dans mon script, il n'y a rien qui fait référence à une taille maximale que doit avoir l'image à l'envoi. Uniquement la hauteur maximale pour le redimensionnement...

Donc je bloque un peu !
0
En fait, problème résolu ! Le soucis n'apparaît qu'en local, une fois les fichiers envoyés sur le serveur, tout fonctionne à merveille ! Merci quand même de l'aide ! :D
0