Upload de photo sur son site
audi68
Messages postés
571
Date d'inscription
Statut
Membre
Dernière intervention
-
audi68 Messages postés 571 Date d'inscription Statut Membre Dernière intervention -
audi68 Messages postés 571 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J aimerais charger des photos sur mon site mais en les redimensionnant creer une image miniature de taille par exemeple de 50/50px et une plus grande de 300/300px
Les charger sur mon site je sais le fait faire en php
comme ceci
$dossier = 'images/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
merci beaucoup de votre aide
J aimerais charger des photos sur mon site mais en les redimensionnant creer une image miniature de taille par exemeple de 50/50px et une plus grande de 300/300px
Les charger sur mon site je sais le fait faire en php
comme ceci
$dossier = 'images/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
merci beaucoup de votre aide
A voir également:
- Upload de photo sur son site
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Google photo - Télécharger - Albums photo
- Quel site remplace coco - Accueil - Réseaux sociaux
- Site de partage de photos - Guide
11 réponses
tiens j'ai ça pour toi, ça vient du site du zero ça marche nickel mais désolé j'ai pas retrouvé la page en question ^^
<?php
$source = imagecreatefromjpeg("couchersoleil.jpg"); // La photo est la source
$destination = imagecreatetruecolor(200, 150); // 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 sous le nom "mini_couchersoleil.jpg"
imagejpeg($destination, 'mini_couchersoleil.jpg');
?>
<img src="mini_couchersoleil.jpg" alt="Coucher de soleil" />
<?php
$source = imagecreatefromjpeg("couchersoleil.jpg"); // La photo est la source
$destination = imagecreatetruecolor(200, 150); // 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 sous le nom "mini_couchersoleil.jpg"
imagejpeg($destination, 'mini_couchersoleil.jpg');
?>
<img src="mini_couchersoleil.jpg" alt="Coucher de soleil" />
meri pour ta reponse aussi rapide je vais tester
mais j ai un petit souci avec le dossier ou ca l enregistre
quel nom dois je donner au dossier?
merci pour ton aide
mais j ai un petit souci avec le dossier ou ca l enregistre
quel nom dois je donner au dossier?
merci pour ton aide
ok
donc imagejpeg($destination, 'mini_couchersoleil.jpg');
avant destionation je met par exemple images
ce qui donne
imagejpeg(images/$destination, 'mini_couchersoleil.jpg');
donc imagejpeg($destination, 'mini_couchersoleil.jpg');
avant destionation je met par exemple images
ce qui donne
imagejpeg(images/$destination, 'mini_couchersoleil.jpg');
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
evites "images j'ai cru voir que tu avais dejà un dossier de ce nom, essaye plutot quelque chose comme "PhotosRedim"
j'ai essayé tout à l'heure et ça marchait impec, le seul hic est qu'il faut renommer à chaque fois ^^ et ça c'est pas terrible, je suis à moitié en train de chercher comment faire ça de manière plus vaste comme télécharger une centaine de photos direct, mais c'est pas du tout au point parce que je suis sur autre chose en même temps ^^
ha j'oubliais, si le code ne fonctionne pas, c'est peut être que ton hébergeur à désactiver la fonction (apparemment très gourmandes en ressources).
voilà espérons que ça marche nickel pour toi =)
ha j'oubliais, si le code ne fonctionne pas, c'est peut être que ton hébergeur à désactiver la fonction (apparemment très gourmandes en ressources).
voilà espérons que ça marche nickel pour toi =)
non justement ca ne fonctionne pas
Je suis chez Ovh
Il me donne ca comme erreur
Warning: imagecreatefromjpeg(finish.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /homez.232/../www/admin/insert.php on line 39
Warning: imagesx(): supplied argument is not a valid Image resource in /homez.232/.../www/admin/insert.php on line 43
Warning: imagesy(): supplied argument is not a valid Image resource in /homez.232/.../www/admin/insert.php on line 44
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /homez.232/.../www/admin/insert.php on line 49
Warning: imagejpeg(): supplied argument is not a valid Image resource in /homez.232/..../www/admin/insert.php on line 52
Je suis chez Ovh
Il me donne ca comme erreur
Warning: imagecreatefromjpeg(finish.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /homez.232/../www/admin/insert.php on line 39
Warning: imagesx(): supplied argument is not a valid Image resource in /homez.232/.../www/admin/insert.php on line 43
Warning: imagesy(): supplied argument is not a valid Image resource in /homez.232/.../www/admin/insert.php on line 44
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /homez.232/.../www/admin/insert.php on line 49
Warning: imagejpeg(): supplied argument is not a valid Image resource in /homez.232/..../www/admin/insert.php on line 52
Perso le code tel que je l'ai testé tout à l'heure avec wamp, marchait impec et quand à l'hebergeur t'es au top là ;)
J ai un peu bidouiller et j ai reussi a ca
<?php
function rewrite($c)
{
$c = strtr($c,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$c = preg_replace('`([^[:alnum:]]+)`', '_', $c);
return strtolower($c);
}
if( !empty($_FILES['photo']) )
{
$extensionValide = array( 'jpg' , 'jpeg' , 'gif' , 'png' , 'bmp' );
$maxSize = 2097152;
$dirUpload = './upload/';
$nbImg = count($_FILES['photo']['name']);
$arrImg = array(); // Sert à stocker les infos que l'on veut garder des images et les messages
// Vérification des images et upload si ok
for( $i=0; $i<$nbImg; $i++ )
{
if( !empty($_FILES['photo']['name'][$i]) ) // && is_uploaded_file($_FILES['photo']['name'][$i]) )
{
// Traitement des erreurs
if( !$_FILES['photo']['error'][$i] )
$arrImg[$i]['upload'] = true;
else
{
$arrImg[$i]['upload'] = false;
if( $_FILES['photo']['error'][$i] == 1 )
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' excède la taille maximale autorisée qui est de ' . floor(2097152/1024) . ' ko';
else
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' n\'a pu être transférée sur le serveur';
}
// Vérification des extensions
if( $arrImg[$i]['upload'] && !array($ext = strtolower(pathinfo($_FILES['photo']['name'][$i], PATHINFO_EXTENSION)), $extensionValide) )
{
$arrImg[$i]['upload'] = false;
$arrImg[$i]['message'] = 'L\'extension de l\'image ' . $_FILES['photo']['name'][$i] . ' n\'est pas de type autorisé';
}
elseif( $arrImg[$i]['upload'] )
{
$arrImg[$i]['ext'] = $ext;
$arrImg[$i]['nom'] = rewrite(substr($_FILES['photo']['name'][$i], 0, -(strlen($ext)+1)));
}
// Vérification du mime
if( $arrImg[$i]['upload'] && !($mime = @getimagesize($_FILES['photo']['tmp_name'][$i])) )
{
$arrImg[$i]['upload'] = false;
$arrImg[$i]['message'] = 'Le fichier ' . $_FILES['photo']['name'][$i] . ' n\'est pas une image';
}
// Vérification de la taille
if( $arrImg[$i]['upload'] && filesize($_FILES['photo']['tmp_name'][$i]) > $maxSize )
{
$arrImg[$i]['upload'] = false;
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' dépasse ' . floor(2097152/1024) . 'ko';
}
//
// Creation d'un identifiant
$taille = 20;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
srand(time());
for ($f=0;$f<$taille;$f++)
{
$id.=substr($lettres,(rand()%(strlen($lettres))),1);
}
//
// Upload si tout est ok
if( $arrImg[$i]['upload'] )
{
$upload = move_uploaded_file($_FILES['photo']['tmp_name'][$i], $dirUpload . uniqid(rand()) . $arrImg[$i]['nom'] . '.' . $arrImg[$i]['ext']);
//
mysql_connect ('mysd', 'ddd', ddd);
mysql_select_db ('gdddddt');
mysql_query('INSERT INTO dddd (id, photo, url) VALUES ( "'.$id.'", "'.$_FILES['photo']['name'][$i].'", "'.$dirUpload.uniqid(rand()).$arrImg[$i]['nom'].'.'.$arrImg[$i]['ext'].'")');
//
if( $upload )
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' a été transférée avec succès';
else
$arrImg[$i]['message'] = 'Un problème est survenu dans la tentative de transfert de l\'image ' . $_FILES['photo']['name'][$i];
}
}
}
// Résultat de l'upload
echo "<h2>Résultat du transfert</h2>\n";
echo "<ul>\n";
if( !empty($arrImg) )
{
foreach( $arrImg as $k => $arr )
echo '<li>' . htmlspecialchars($arrImg[$k]['message']) . "</li>\n";
}
else
echo "<li>Aucune image n'a été envoyée</li>";
echo "</ul>\n";
}
else
{
?>
<form name="form1" enctype="multipart/form-data" method="post" action="">
<input type="hidden" name="MAX_FILE_SIZE" value="2097152" />
<label>
<input name="photo[]" type="file" id="photo1">
</label>
<p>
<label>
<input name="photo[]" type="file" id="photo2">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo3">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo4">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo5">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo6">
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Envoyer">
</label>
</p>
</form>
<?php
}
?>
</body>
</html>
J aimerais rajouter plusieurs photos dans une base de donnée ce qui vas mais sont a chaque fois creer dans une nouve ligne
J aimerais que dans mon tableau il y a photos 1 puis photos2 ......
Quelq un a une idee?
merci de votre aide
<?php
function rewrite($c)
{
$c = strtr($c,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$c = preg_replace('`([^[:alnum:]]+)`', '_', $c);
return strtolower($c);
}
if( !empty($_FILES['photo']) )
{
$extensionValide = array( 'jpg' , 'jpeg' , 'gif' , 'png' , 'bmp' );
$maxSize = 2097152;
$dirUpload = './upload/';
$nbImg = count($_FILES['photo']['name']);
$arrImg = array(); // Sert à stocker les infos que l'on veut garder des images et les messages
// Vérification des images et upload si ok
for( $i=0; $i<$nbImg; $i++ )
{
if( !empty($_FILES['photo']['name'][$i]) ) // && is_uploaded_file($_FILES['photo']['name'][$i]) )
{
// Traitement des erreurs
if( !$_FILES['photo']['error'][$i] )
$arrImg[$i]['upload'] = true;
else
{
$arrImg[$i]['upload'] = false;
if( $_FILES['photo']['error'][$i] == 1 )
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' excède la taille maximale autorisée qui est de ' . floor(2097152/1024) . ' ko';
else
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' n\'a pu être transférée sur le serveur';
}
// Vérification des extensions
if( $arrImg[$i]['upload'] && !array($ext = strtolower(pathinfo($_FILES['photo']['name'][$i], PATHINFO_EXTENSION)), $extensionValide) )
{
$arrImg[$i]['upload'] = false;
$arrImg[$i]['message'] = 'L\'extension de l\'image ' . $_FILES['photo']['name'][$i] . ' n\'est pas de type autorisé';
}
elseif( $arrImg[$i]['upload'] )
{
$arrImg[$i]['ext'] = $ext;
$arrImg[$i]['nom'] = rewrite(substr($_FILES['photo']['name'][$i], 0, -(strlen($ext)+1)));
}
// Vérification du mime
if( $arrImg[$i]['upload'] && !($mime = @getimagesize($_FILES['photo']['tmp_name'][$i])) )
{
$arrImg[$i]['upload'] = false;
$arrImg[$i]['message'] = 'Le fichier ' . $_FILES['photo']['name'][$i] . ' n\'est pas une image';
}
// Vérification de la taille
if( $arrImg[$i]['upload'] && filesize($_FILES['photo']['tmp_name'][$i]) > $maxSize )
{
$arrImg[$i]['upload'] = false;
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' dépasse ' . floor(2097152/1024) . 'ko';
}
//
// Creation d'un identifiant
$taille = 20;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
srand(time());
for ($f=0;$f<$taille;$f++)
{
$id.=substr($lettres,(rand()%(strlen($lettres))),1);
}
//
// Upload si tout est ok
if( $arrImg[$i]['upload'] )
{
$upload = move_uploaded_file($_FILES['photo']['tmp_name'][$i], $dirUpload . uniqid(rand()) . $arrImg[$i]['nom'] . '.' . $arrImg[$i]['ext']);
//
mysql_connect ('mysd', 'ddd', ddd);
mysql_select_db ('gdddddt');
mysql_query('INSERT INTO dddd (id, photo, url) VALUES ( "'.$id.'", "'.$_FILES['photo']['name'][$i].'", "'.$dirUpload.uniqid(rand()).$arrImg[$i]['nom'].'.'.$arrImg[$i]['ext'].'")');
//
if( $upload )
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' a été transférée avec succès';
else
$arrImg[$i]['message'] = 'Un problème est survenu dans la tentative de transfert de l\'image ' . $_FILES['photo']['name'][$i];
}
}
}
// Résultat de l'upload
echo "<h2>Résultat du transfert</h2>\n";
echo "<ul>\n";
if( !empty($arrImg) )
{
foreach( $arrImg as $k => $arr )
echo '<li>' . htmlspecialchars($arrImg[$k]['message']) . "</li>\n";
}
else
echo "<li>Aucune image n'a été envoyée</li>";
echo "</ul>\n";
}
else
{
?>
<form name="form1" enctype="multipart/form-data" method="post" action="">
<input type="hidden" name="MAX_FILE_SIZE" value="2097152" />
<label>
<input name="photo[]" type="file" id="photo1">
</label>
<p>
<label>
<input name="photo[]" type="file" id="photo2">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo3">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo4">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo5">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo6">
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Envoyer">
</label>
</p>
</form>
<?php
}
?>
</body>
</html>
J aimerais rajouter plusieurs photos dans une base de donnée ce qui vas mais sont a chaque fois creer dans une nouve ligne
J aimerais que dans mon tableau il y a photos 1 puis photos2 ......
Quelq un a une idee?
merci de votre aide