Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/06/2007, 15h20   #1
Membre du Club
 
Inscription : mars 2004
Messages : 208
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 208
Points : 63
Points : 63
Par défaut [Upload] upload 1 image a 2 endroit

Bonjour,
je voudrais uploader 1 image à 2 endroits différent 1 coup en miniature et l'autre a taille réelle avec un seul champ de formulaire (vu que c'est la même image ).
Donc j'ai codé un truc qui me met bien mes images au bon emplacement me redimentionne bien la petite.
Mais la ou ça coince c'est pour la grande car elle est créée mais reste noire.
Donc voilà mon bout de code si quelqu'un a une idée je suis preneur.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
if(is_uploaded_file($_FILES['image']['tmp_name'])){
$uploaddirmini='../images/mini/'.$_POST['ref'].'.jpeg';						$uploaddirmini2='./images/mini/'.$_POST['ref'].'.jpeg';						$uploaddirmaxi='../images/maxi/'.$_POST['ref'].'.jpeg';						$uploaddirmaxi2='./images/maxi/'.$_POST['ref'].'.jpeg';						if(move_uploaded_file($_FILES['image']['tmp_name'], $uploaddirmini)){
  $taille=getimagesize($uploaddirmini);
  $taillex=$taille[0];
  $tailley=$taille[1];
  $rapport=$taillex/$tailley;
 
  if(($taillex>130) or ($tailley>130)){
    if($rapport <= 1){
      $multi=$tailley/130;
      $newtaillex=$taillex/$multi;
      $newtailley=130;
    }
    else{
      $multi=$taillex/130;
      $newtaillex=130;
      $newtailley=$tailley/$multi;
    }
    $thumb = imagecreatetruecolor($newtaillex, $newtailley);
    $source = imagecreatefromjpeg($uploaddirmini);i
    imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newtaillex, $newtailley, $taillex, $tailley);
    imagejpeg($thumb,$uploaddirmini);
    move_uploaded_file($_FILES['image']['tmp_name'], $uploaddirmaxi);
    $thumb2 = @imagecreatetruecolor($taillex, $tailley);
    $source2 = @imagecreatefromjpeg($uploaddirmaxi);
    @imagecopyresampled($thumb2, $source2, 0, 0, 0, 0, $taillex2, $tailley2, $taillex2, $tailley2);
    @imagejpeg($thumb2,$uploaddirmaxi);
  }
}
Donc si quelqu'un voit quelque chose ça m'aiderais bien merci d'avance.
shelko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 15h55   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Parce que des variables ne sont pas définies (taillex2 et tailley2) et que la fonction move_uploaded_file ne peut pas déplacer une deuxième fois un fichier qui a déjà été déplacé ?

Pourquoi l'écraser, ici ?
Code :
1
2
3
    $source = imagecreatefromjpeg($uploaddirmini);
    imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newtaillex, $newtailley, $taillex, $tailley);
    imagejpeg($thumb,$uploaddirmini);
Pourrait-on avoir un code complet et correct (syntaxiquement) ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 16h28   #3
Membre du Club
 
Inscription : mars 2004
Messages : 208
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 208
Points : 63
Points : 63
En fait pour résumer j'ai un champ file dans un formulaire.
Et une fois uploadé il me faut la miniture dans le dossier mini et la grande dans le dossier maxi.Donc comme je savais pas que la fonction move_uploaded_file ne pouvait déplacer 2 fois un mçeme fichier je vais devoir trouver autre chose .
shelko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 16h44   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Celle en taille réelle n'a pas besoin de faire l'objet des fonctions gd, il suffit de simplement déplacer l'originale puis de l'utiliser pour générer votre miniature (sans y toucher, donc en utilisant un autre nom dans la fonction imagejpeg). J'espère ne pas avoir compris de travers cette partie et votre code ne me permet pas de confirmer ou d'infirmer cette réflexion.

Remarque : pour votre développement définissez error_reporting à E_ALL et n'utilisez pas l'opérateur @ (plus gourmand d'ailleurs). Vous verrez tout de suite vos erreurs et il vaut mieux remplacer les @ par des tests car avec ou sans arobase vous exécuterez, tel que vous l'avez codé, les instructions suivantes (donc seront aussi source d'erreur).

Il y également une fonction pour faire des copies de fichiers (copy).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 17h19   #5
Membre du Club
 
Inscription : mars 2004
Messages : 208
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 208
Points : 63
Points : 63
Merci pour ces conseils je vais tester ça.
shelko est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h14.


 
 
 
 
Partenaires

Hébergement Web