Upload image php + ajout dans l'image GD

Résolu/Fermé
Angels-Sunshine - 8 mai 2008 à 19:12
Scienti Messages postés 13 Date d'inscription dimanche 7 août 2011 Statut Membre Dernière intervention 11 avril 2012 - 5 mars 2012 à 15:23
Bonjouuuuuur ! -Bonsoir-
J'ai un tit problème php, et ayant essayé de posté sur le sdz mais personne peut m'aider.
Donc voici mon script, comment il marche etc ...
J'ai index.php, je peux upload des fichiers vers /screen/ (Variable : $url = chemin de l'image et $nom_fichier = nom image)
J'ai traitement_screen.php où j'utilise $url pour ajouter logosdz.png a l'image uploader.
J'envoie des variables comme sous le shéma ci-desssous.
Iindex.php ==Upload de l'image ==========ENVOIE DES VARIABLES $url et $nom_fichier====>traitement_screen .php

Voici mes codes, respectivement index.php et traitement_screen.php
///////////////////////////
/// INDEX.PHP
///////////////////////////
<?php

$poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets)
$repertoire = 'screen/'; // Repertoire d'upload

if (isset($_FILES['fichier']))
{

// On vérifit le type du fichier
if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif')
{
$erreur = 'Le fichier doit être au format *.jpeg, *.gif ou *.png .';
}

// On vérifit le poids de l'image
elseif ($_FILES['fichier']['size'] > $poids_max)
{
$erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
}

// On vérifit si le répertoire d'upload existe
elseif (!file_exists($repertoire))
{
$erreur = 'Erreur, le dossier d\'upload n\'existe pas.';
}

# // Si il y a une erreur on l'affiche sinon on peut uploader
if(isset($erreur))
{
echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>';
}
else
{

// On définit l'extention du fichier puis on le nomme par le timestamp actuel
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; }
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; }
if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; }
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; }
$nom_fichier = time().$extention;


// On upload le fichier sur le serveur.
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
{
$url = './'.$repertoire.''.$nom_fichier.'';
echo 'Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type="text" value="' . $url . '" size="60"><br />
';
}
else
{
echo 'L\'image n\'a pas pu être uploadée sur le serveur.';
}

}

}
else
{
?>
<form method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $poids_max; ?>">
<input type="file" name="fichier">
<input type="submit" value="Envoyer">

</form>

<?php
}
?>


///////////////////////////
//// traitement_screen.php
/////////////////////////
<?php

// load variable $url
$url = $_GET['url'];
// On charge d'abord les images
$source = imagecreatefrompng("logosdz.png"); // Le logo est la source
$destination = imagecreatefromjpeg("$url"); // La photo est la destination

// 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 veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo
$destination_x = $largeur_destination - $largeur_source;
$destination_y = $hauteur_destination - $hauteur_source;

// On met le logo (source) dans l'image de destination (la photo)
imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 60);

// On affiche l'image de destination qui a été fusionnée avec le logo
imagejpeg($destination);
?>

////////////////////
voilà mes codes comme vous pouvez le voir ;)
Voici l'erreur :
Warning: imagecreatefromjpeg(screen1210156284.png) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\wamp\www\screen\traitement_screen.php on line 7

Warning: imagesx(): supplied argument is not a valid Image resource in C:\wamp\www\screen\traitement_screen.php on line 12

Warning: imagesy(): supplied argument is not a valid Image resource in C:\wamp\www\screen\traitement_screen.php on line 13

Warning: imagecopymerge(): supplied argument is not a valid Image resource in C:\wamp\www\screen\traitement_screen.php on line 20

Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wamp\www\screen\traitement_screen.php on line 23

//// Ce code d'erreur vient si mon adresse est : http://localhost/screen/traitement_screen.php?url=screen1210156284.png
//// Si je déclare pas l'url dans ma barre de navigation, je n'ai pas Warning: imagecreatefromjpeg(screen1210156284.png) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\wamp\www\screen\traitement_screen.php on line 7
resource in C:\wamp\www\screen\traitement_screen.php on line 23
////////////////////////
///////////////////////

Voilà Voilà :) Merci beaucoup d'avance.


Ps : J'ai wamp 5 en local. La libraire GD est activé ;) // Le topic sur le siteduzero : https://openclassrooms.com/forum/sujet/probleme-d-upload-36506
A voir également:

3 réponses

Utilisateur anonyme
9 mai 2008 à 10:31
Salut donc moi j'ai fait :
http://localhost/traitement_screen.php?url=./screen/nomfichier.jpg

et dans ta page traitement_screen.php j'ai modifié :
$source = imagecreatefrompng("./screen/logosdz.png"); // Le logo est la source

Voila si cela a pu t'aider.

Karando.
3
tres bien j'espere que je te connais de plus ton ami firas
0
Scienti Messages postés 13 Date d'inscription dimanche 7 août 2011 Statut Membre Dernière intervention 11 avril 2012 9
5 mars 2012 à 15:23
Salut, je pense que ce petit tuto devrait répondre à ton problème !

https://webinfobazar.com/upload-dune-image-sur-un-ftp-php-sql/

j'en ai d'autre de prévu, si vous avez des questions, n'hésitez pas ! ;)

Cordialement, Scienti
1
Angels-Sunshine
9 mai 2008 à 17:25
Wouauuuuuuuuuuuu !! Gagné =D
Merci beaucoup de ton aide.

Pourrais tu me detailler mon erreur ? ;)
D'avance, merci.
0