script vignette qui ne marche pas
15 messages
• Page 1 sur 1
-

catseyes - Nouveau WRInaute

- Messages: 34
- Inscription: 7 Avr 2007
script vignette qui ne marche pas
bonjour,
j'ai un script qui marche pour l'upload photos (dossier et BDD), mais la partie vignette du script est inopérante.
J'ai beau tourner et retourner le code, je ne vois pas la solution, mais vu mon petit niveau en php, rien d'étonnant
.
Pouvez vous m'aider à y voir plus clair ??
voici la partie vignette qui bug : message upload de la vignette échoué
j'ai un script qui marche pour l'upload photos (dossier et BDD), mais la partie vignette du script est inopérante.
J'ai beau tourner et retourner le code, je ne vois pas la solution, mais vu mon petit niveau en php, rien d'étonnant
Pouvez vous m'aider à y voir plus clair ??
voici la partie vignette qui bug : message upload de la vignette échoué
- Code: Tout sélectionner
<?
session_start();
include ('../_connexion.php');
?>
<?php
function vignette($file = photo, $maxWidth = 60, $maxHeight = 60){
// Vérification des erreurs dans les paramètres de la fonction
//============================================================
if(!file_exists($file)){
// Si le fichier passé en paramètre n'existe pas
return 'Le fichier '.$file.' n\'a pas été trouvé sur le serveur.';
}
elseif(empty($file)){
// Si le fichier n'a pas été indiqué
return 'Nom du fichier non renseigné.';
}
elseif(!is_numeric($maxWidth) || empty($maxWidth) || $maxWidth < 0){
// Si la largeur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0)
return 'Valeur de la largeur incorrecte.';
}
elseif(!is_numeric($maxHeight) || empty($maxHeight) || $maxHeight < 0){
// Si la hauteur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0)
return 'Valeur de la hauteur incorrecte.';
}
//============================================================
$fichier = realpath($file); // Chemin canonique absolu de l'image
$dir = dirname($file).'http://allhambra.free.fr/Peter%20span%20design/Art/photo/art_table/'; // Chemin du dossier contenant l'image
$infoImg = getimagesize($fichier); // Récupération des infos de l'image
$imgWidth = $infoImg[0]; // Largeur de l'image
$imgHeight = $infoImg[1]; // Hauteur de l'image
// Initialisation des variables selon l'extension de l'image
switch($infoImg[2]){
case 2:
$img = imagecreatefromjpeg($fichier); // Création d'une nouvelle image jpeg à partir du fichier
$extImg = '.jpg'; // Extension de l'image
break;
case 3:
$img = imagecreatefrompng($fichier); // Création d'une nouvelle image png à partir du fichier
$extImg = '.png';
}
// Initialisation des dimensions de la vignette si elles sont supérieures à l'original
if($maxWidth > $imgWidth){ $maxWidth = $imgWidth; }
if($maxHeight > $imgHeight){ $maxHeight = $imgHeight; }
$whFact = $maxWidth/$maxHeight; // Facteur largeur/hauteur des dimensions max de la vignette
$imgWhFact = $imgWidth/$imgHeight; // Facteur largeur/hauteur de l'original
// Fixe les dimensions de la vignette
if($whFact < $imgWhFact){
// Si largeur déterminante
$thumbWidth = $maxWidth;
$thumbHeight = $thumbWidth / $imgWhFact;
} else {
// Si hauteur déterminante
$thumbHeight = $maxHeight;
$thumbWidth = $thumbHeight * $imgWhFact;
}
$imgThumb = imagecreatetruecolor($thumbWidth, $thumbHeight); // Création de la vignette
imagecopyresized($imgThumb, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imgWidth, $imgHeight); // Insère l'image de base redimensionnée
$fileName = basename($file, $extImg); // Nom du fichier sans son extension
$imgThumbName = $dir.$fileName.'-min'.$extImg; // Chemin complet du fichier de la vignette
//Création du fichier de la vignette
$fp = fopen($imgThumbName, "w");
fclose($fp);
// Renvoi la vignette créée
switch($infoImg[2]){
case 2:
imagejpeg($imgThumb, $imgThumbName, 50); // Renvoi d'une image jpeg avec une qualité de 50
break;
case 3:
imagepng($imgThumb, $imgThumbName);
}
return $imgThumbName;
}
?>
<?
session_start();
$DESTINATION_FOLDER = "vignette";
$MAX_SIZE = 1000000;
$AUTH_EXT = array(".jpg", ".gif");
if(!empty($_FILES["file"]["name"]))
{
$nomFichier = $_FILES["file"]["name"] ;
$nomTemporaire = $_FILES["file"]["tmp_name"] ;
$typeFichier = $_FILES["file"]["type"] ;
$poidsFichier = $_FILES["file"]["size"] ;
$codeErreur = $_FILES["file"]["error"] ;
$extension = strrchr($nomFichier, ".");
$nomFichier1 = "article-" . $compteur . $extension;
if($poidsFichier != 0)
{
if($poidsFichier < $MAX_SIZE)
{
if(isExtAuthorized($extension))
{
$uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier1);
if($uploadOk) {
$query="UPDATE 1two_ecommerce_prod SET vignette='vignette/" . "$nomFichier1' WHERE compteur='$compteur'";
$resswitch = @mysql_query($query,$db);
echo "<span class='texte'>L'upload de la vignette a réussi !<br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
}
else { echo("<span class='texte'>L'upload de la vignette a échoué !<br><br></span>"); }
}
else
{
echo "<span class='texte'><font color='FF0000'>Les fichiers avec l'extension " . $extension . " ne peuvent pas être uploadés !</font><br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
}
}
else
{
$tailleKo = $MAX_SIZE / 1000000;
echo "<span class='texte'><font color='FF0000'>Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : " . $tailleKo . " Ko.</font><br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
}
}
else
{
echo "<span class='texte'><font color='FF0000'>Le fichier choisi est invalide !</font><br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
}
}
else
{
echo "<span class='texte'><font color='FF0000'>Vous n'avez pas choisi de fichier !</font><br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
}
?>
- yonni
- WRInaute discret

- Messages: 137
- Inscription: 4 Fév 2005
En regardant vite fait, moi y a ce bout de code qui m'interpelle :
Tu devrais essayer de l'enlever, le fichier image étant créé avec imagejpeg ou imagepng..
++
- Code: Tout sélectionner
//Création du fichier de la vignette
$fp = fopen($imgThumbName, "w");
fclose($fp);
Tu devrais essayer de l'enlever, le fichier image étant créé avec imagejpeg ou imagepng..
++
-

catseyes - Nouveau WRInaute

- Messages: 34
- Inscription: 7 Avr 2007
ça serait du à :
que j'ai laissé tel quel ne sachant pas ce qu'est un chemin canonique?
Pour les droits d'écriture, le dossier est chmodé normalement.
Je vais vérifier, merci les gars !
- Code: Tout sélectionner
$fichier = realpath($file); // Chemin canonique absolu de l'image
que j'ai laissé tel quel ne sachant pas ce qu'est un chemin canonique?
Pour les droits d'écriture, le dossier est chmodé normalement.
Je vais vérifier, merci les gars !
-

catseyes - Nouveau WRInaute

- Messages: 34
- Inscription: 7 Avr 2007
le message d'erreur est le suivant :
L'upload a réussi (des photos)!
Revenir à l'administration. L'upload de la vignette a échoué !
car avant la partie vignette du script, j'ai la partie photos qui elle marche :
L'upload a réussi (des photos)!
Revenir à l'administration. L'upload de la vignette a échoué !
car avant la partie vignette du script, j'ai la partie photos qui elle marche :
- Code: Tout sélectionner
<?
$DESTINATION_FOLDER = "photo";
$MAX_SIZE = 1000000;
$AUTH_EXT = array(".jpg", ".gif");
function isExtAuthorized($ext){
global $AUTH_EXT;
if(in_array($ext, $AUTH_EXT)){ return true; }
else{ return false; } }
if(!empty($_FILES["file"]["name"]))
{
$nomFichier = $_FILES["file"]["name"] ;
$nomTemporaire = $_FILES["file"]["tmp_name"] ;
$typeFichier = $_FILES["file"]["type"] ;
$poidsFichier = $_FILES["file"]["size"] ;
$codeErreur = $_FILES["file"]["error"] ;
$extension = strrchr($nomFichier, ".");
$nomFichier1 = "article-" . $compteur . $extension;
if($poidsFichier != 0)
{
if($poidsFichier < $MAX_SIZE)
{
if(isExtAuthorized($extension))
{
$uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier1);
if($uploadOk) {
$query="UPDATE 1two_ecommerce_prod SET photo='photo/" . "$nomFichier1' WHERE compteur='$compteur'";
$resswitch = @mysql_query($query,$db);
echo "<span class='texte'>L'upload a réussi !<br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
}
else { echo("<span class='texte'>L'upload a échoué !<br><br></span>"); }
}
else
{
echo "<span class='texte'><font color='FF0000'>Les fichiers avec l'extension " . $extension . " ne peuvent pas être uploadés !</font><br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
}
}
else
{
$tailleKo = $MAX_SIZE / 1000;
echo "<span class='texte'><font color='FF0000'>Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : " . $tailleKo . " Ko.</font><br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
}
}
else
{
echo "<span class='texte'><font color='FF0000'>Le fichier choisi est invalide !</font><br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
}
}
else
{
echo "<span class='texte'><font color='FF0000'>Vous n'avez pas choisi de fichier !</font><br><br> <a href='index.php?menu=items' class='lien2'>Revenir à l'administration</a>.</span>";
}
?>
-

UsagiYojimbo - WRInaute accro

- Messages: 8306
- Inscription: 23 Nov 2005
En fait je pense que ce que te demandais rog, ce n'était pas tant le message d'erreur que toi tu affiches que l'extrait des log apache qui concerne ton upload.
-

bproductiv - WRInaute accro

- Messages: 4146
- Inscription: 27 Déc 2004
pourquoi ne pas faire la miniature juste apres l'upload de l'image, dans la mm portion de script...
-

catseyes - Nouveau WRInaute

- Messages: 34
- Inscription: 7 Avr 2007
pourquoi ne pas faire la miniature juste apres l'upload de l'image, dans la mm portion de script...
Mais c'est exactement ce que je veux faire !
Dans l'absolu je veux uploader ma photo, créer la miniature correspondante et incrémenter tout ca dans ma BDD
-

bproductiv - WRInaute accro

- Messages: 4146
- Inscription: 27 Déc 2004
plus propre, plus rapide, moins prise de tête et plus complet, moi j'utilise ca :
http://www.phpclasses.org/browse/package/2181.html
Un must!
http://www.phpclasses.org/browse/package/2181.html
Un must!
-

catseyes - Nouveau WRInaute

- Messages: 34
- Inscription: 7 Avr 2007
plus propre, plus rapide, moins prise de tête et plus complet, moi j'utilise ca :
http://www.phpclasses.org/browse/package/2181.html
Un must!
Merci infiniment, cela faisait 15 jours que je bloquais là dessus.
Ca à l'air plus simple en effet, il ne me reste plus qu'a tester tout ça.
Merci encore, je vais enfin pouvoir avancer.
Note pour plus tard, dur dur les début en PHP, mais je vaincrai
15 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Vignette copie écran : les 'thumbshots', comment ça marche?
- [script] Création de vignette jpeg ou png
- Un script de tracking qui marche !!! Repondez SVP
- générateur de vignette
- vignette snap
- vignette+video
- vignette avec ffmepg
- Google et vignette du site
- création et découpage d'une vignette
- Mettre mon logo en vignette
- Les albums web Picasa passent à 1 Go de stockage - 08-03-2007
- Parts de marché des moteurs en Europe (Février 2006) - 09-12-2006
- Google Chrome dépasse Safari aux USA - 29-06-2010
- Photos satellite des incendies en Grèce dans Google Earth - 30-08-2007
- Ajouter un Gadget Google sur son site - 04-10-2006
- La terre vue par satellite : accord entre Google et Spot Image - 23-01-2007
- Google Desktop pour Mac OS X - 05-04-2007
- Parts de marché des moteurs aux USA (Avril 2008) - 22-05-2008
Consultez la description détaillée des produits ou services de Google suivants : Google Images, Google Video Store
Qui est en ligne
Utilisateurs parcourant ce forum: itry et 0 invités



