tavman
Habitué
  
Hors-Ligne
Messages: 466

HS
|
Automatiser l'upload : faire en sorte que la personne n'ait pas 2 étapes a faire : configurer l'image dans le panneau d'aministration et mettre l'image par le FTP...
Alors, en gros, c'est pas bien compliqué un upload "automatique" d'image sur le serveur... on en voit un peut partout (upload d'avatar sur les forums par exemple), voici un petit exemple de ce que j'ai fait (un jour...)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <TITLE>Chargement</TITLE> </HEAD>
<BODY> <? // Liste des formats acceptés : $Format = array ( "text/html" , "image/gif" , "image/jpeg" ); // Nom du dossier ou vont se retrouver les fichiers uploadé en fonction des formats : $Folder = array ( "load_files_html" , "load_files_image" , "load_files_image" );
// Vérification des erreurs : if ( strlen ( $_FILES["fichier"]["name"] ) > 3 ) { if ( $_FILES["fichier"]["error"] == 0 ) { // Vérification de l'upload : if ( is_uploaded_file( $_FILES["fichier"]["tmp_name"] ) ) { echo $_FILES["fichier"]["name"] . " : Upload : OK<BR />"; // Vérification du format : $File_Format = -1; foreach ( $Format as $k => $v ) { $File_Format = ( $_FILES["fichier"]["type"] === $v ) ? $k : $File_Format; } if ( $File_Format >= 0 ) { echo $_FILES["fichier"]["name"] . " : Format : OK<BR />"; $Folder_Use = $Folder [ $File_Format ]; // On vérifie si on doit changer ou non le nom du fichier : $File_Name = $_FILES["fichier"]["name"]; if ( file_exists ("$Folder_Use/$File_Name") ) { $i = 0; // On change le nom du fichier : while ( file_exists ("$Folder_Use/$i$File_Name") ) { $i++; } $File_Name = $i . $_FILES["fichier"]["name"]; } // On place le fichier dans le dossier : if ( move_uploaded_file( $_FILES["fichier"]["tmp_name"] , "$Folder_Use/$File_Name" ) ) { echo $_FILES["fichier"]["name"] . " : Chargement du fichier effectué.<BR />"; echo "Nom du fichier : <U>$File_Name</U>."; } else { echo "Problème lors du chargement du fichier " . $_FILES["fichier"]["name"] . ". Veuillez rééssayer ultérieurement.<BR />"; } } else { echo $_FILES["fichier"]["name"] . " : Le format du fichier est mauvais."; } } else { echo $_FILES["fichier"]["name"] . " : Le fichier est introuvable."; } } else { $erreur = ( $_FILES["fichier"]["error"] === 1 ) ? $_FILES["fichier"]["name"] . " : Fichier trop lourd." : $erreur; $erreur = ( $_FILES["fichier"]["error"] === 2 ) ? $_FILES["fichier"]["name"] . " : Fichier trop lourd." : $erreur; $erreur = ( $_FILES["fichier"]["error"] === 3 ) ? $_FILES["fichier"]["name"] . " : Problème lors de l'upload du fichier." : $erreur; $erreur = ( $_FILES["fichier"]["error"] === 4 ) ? $_FILES["fichier"]["name"] . " : Pas de fichier uploadé" : $erreur; } } else { echo "Pas de fichier envoyé.<BR />"; } ?>
<FORM method="post" enctype="multipart/form-data" action="chargement.php"> <P> <INPUT type="file" name="fichier" size="30"> <INPUT type="submit" name="upload" value="Uploader"> </P> </FORM> </BODY> </HTML>
ca t'upload les formats dans différents dossiers si tu veut; tu peut renommer les images comme tu le sent (en fonction de la page ou elles s'afficheront par exemple). T'as cas rajoutter ca derrière de ton script (celui ou tu demande la taille d'affichage, la page, le nom, une petite légende etc.), tu renomme ton image (trouve ta technique pour éviter les répétitions) et tu enregistre le nom dans la base de donnée.... rien de bien compliqué finalement... |