script vignette qui ne marche pas
15 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
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>";
}
?>
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..
++
-

bproductiv - WRInaute accro

- Messages: 2830
- Inscription: Lun Déc 27, 2004 16:29
problème de chemin surement.
ç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 !
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: 5192
- Inscription: Mer Nov 23, 2005 10:38
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: 2830
- Inscription: Lun Déc 27, 2004 16:29
pourquoi ne pas faire la miniature juste apres l'upload de l'image, dans la mm portion de script...
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: 2830
- Inscription: Lun Déc 27, 2004 16:29
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!
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
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Parts de marché des moteurs en Europe (Février 2006)
- Les albums web Picasa passent à 1 Go de stockage
- Photos satellite des incendies en Grèce dans Google Earth
- Ajouter un Gadget Google sur son site
- La terre vue par satellite : accord entre Google et Spot Image
- Google Desktop pour Mac OS X
- Parts de marché des moteurs aux USA (Avril 2008)
- Picasa Web Albums en français
- Google Pack s'enrichit de 2 nouveaux logiciels gratuits
- Résultats des élections présidentielles du 1er tour 2007
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: Aucun utilisateur enregistré et 0 invités




le forum