arobs45 | Malheureusement, tu es obligé de passer par un peu de HTML et de php...
Dans le fichier de base, (la page d'accueil de ton site), tu mets un formulaire du type :
Code :
- <form name="formulaire_envoi_fichier" enctype="multipart/form-data" method="post" action="upload.php">
- Donnez un titre à l'image : <INPUT NAME=titre size=30>
- Choisir l'image : <input type="file" name="fichier_choisi" size="5">
- <input type="submit" name="bouton_submit" value="Envoyer l'image !"></p>
- </form>
|
Ensuite, il faut créer un fichier upload.php qui va se servir de gérer "intelligemment" le fichier... En PHP, on peut récupérer les variables des forumlaires... Ils sont transmis en tant que $nom_variable_formulaire (par exemple, $titre et $fichier_choisi).
Donc voici le code du fichier upload.php qui peut être créé (après les '//' c'est un commentaire) :
Code :
- <?
- if(!empty($_FILES["fichier_choisi"]["name"])) //On vérifie qu'il y a bien eu un fichier d'envoyé !
- {
- //nom du fichier choisi:
- $nomFichier = $_FILES["fichier_choisi"]["name"] ;
- //nom temporaire sur le serveur:
- $nomTemporaire = $_FILES["fichier_choisi"]["tmp_name"] ;
- //type du fichier choisi:
- $typeFichier = $_FILES["fichier_choisi"]["type"] ;
- //poids en octets du fichier choisit:
- $poidsFichier = $_FILES["fichier_choisi"]["size"] ;
- //code de l'erreur si jamais il y en a une:
- $codeErreur = $_FILES["fichier_choisi"]["error"] ;
- //chemin qui mène au dossier qui va contenir les fichiers uplaod (à toi de le définir):
- $chemin = "user_upload/" ;
- //On vérifie que l'extension est correcte (ici on autorise jpg, jpeg et gif uniquement)
- //Si ce n'est pas le cas, on arrête tout !
- $ext=strtolower(strrchr($nomFichier, '.'));
- if ($ext!=".jpg" AND $ext!=".jpeg" AND $ext!=".gif" ){
- echo "<br>Votre image doit être un jpg, jpeg ou gif <br>";
- exit;
- }
- //Et voilà, on copie l'image
- copy($nomTemporaire, $chemin.$nomFichier);
- // Creation de l'image à la bonne taille ! Si besoin, pour éviter de prendre trop de place
- // Toute cette partie est optionnelle !
- $largeur_max = 250;
- $hauteur_max = 250;
- $size = getimagesize($chemin.$nomFichier);
- $largeur_src=$size[0];
- $hauteur_src=$size[1];
- if($size[2]==1){ // format gif
- $image_src=imagecreatefromgif($chemin.$nomFichier);
- }
- if($size[2]==2){ // format jpg ou jpeg
- $image_src=imagecreatefromjpeg($chemin.$nomFichier);
- }
- // on verifie que l'image source ne soit pas plus petite que l'image de destination
- if ($largeur_src>$largeur_max OR $hauteur_src>$hauteur_max){
- // si la largeur est plus grande que la hauteur
- if ($hauteur_src<=$largeur_src){
- $ratio=$largeur_max/$largeur_src;
- }else{
- $ratio=$hauteur_max/$hauteur_src;
- }
- }else{
- $ratio=1; // l'image créee sera identique à l'originale
- }
- $image_dest=imagecreatetruecolor(round($largeur_src*$ratio),round($hauteur_src*$ratio));
- imagecopyresized($image_dest, $image_src, 0, 0, 0, 0,round($largeur_src*$ratio), round($hauteur_src*$ratio), $largeur_src, $hauteur_src);
- if(!imagejpeg($image_dest, $chemin.$nomFichier)){
- echo "la création de la vignette a echouée pour l'image $image";
- exit;
- }
- print("<img src=\"" . $chemin . $nomFichier . "\" width=150><br>" );
- }else {
- echo("Vous n'avez pas choisi d'image pour cette nouvelle.<br>" ) ;
- }
- ?>
|
Voilà je pense que ça devrait marcher... N'hésite pas à reposter au cas où !
JFW ---------------
Voir mon site perso : http://lnjf.free.fr
|