Upload HTML et PHP
Fermé
sunkie59
Messages postés
55
Date d'inscription
vendredi 6 décembre 2013
Statut
Membre
Dernière intervention
1 juin 2014
-
6 déc. 2013 à 14:44
sunkie59 Messages postés 55 Date d'inscription vendredi 6 décembre 2013 Statut Membre Dernière intervention 1 juin 2014 - 2 janv. 2014 à 15:42
sunkie59 Messages postés 55 Date d'inscription vendredi 6 décembre 2013 Statut Membre Dernière intervention 1 juin 2014 - 2 janv. 2014 à 15:42
A voir également:
- Upload HTML et PHP
- Editeur html - Télécharger - HTML
- Easy php - Télécharger - Divers Web & Internet
- Retour a la ligne php ✓ - Forum PHP
- Html download - Télécharger - HTML
- Br html ✓ - Forum Webmastering
8 réponses
MisterPoZZi
Messages postés
26
Date d'inscription
vendredi 6 décembre 2013
Statut
Membre
Dernière intervention
25 janvier 2015
3
Modifié par MisterPoZZi le 6/12/2013 à 16:12
Modifié par MisterPoZZi le 6/12/2013 à 16:12
Dans le formulaire tu rajoutes un champ texte pour le nom du fichier :
Et dans le PHP tu modifies la ligne 54 :
Par :
Mais attention, ce code récupère le nom choisi sans effectuer aucune opération dessus (suppression des accents, espaces, caractères spéciaux..). Je te laisse le faire.
Et il n'oblige pas l'utilisateur à saisir un nom.
Voilà !
<input type="text" name="nomfichier" value="" />
Et dans le PHP tu modifies la ligne 54 :
// On renomme le fichier $nomImage = md5(uniqid()) .'.'. $extension;
Par :
// On renomme le fichier par le nom voulu par l'utilisateur (si renseigné) if(!empty($_POST['nomfichier'])) $nomImage = $_POST['nomfichier'] .'.'. $extension; else $nomImage = md5(uniqid()) .'.'. $extension;
Mais attention, ce code récupère le nom choisi sans effectuer aucune opération dessus (suppression des accents, espaces, caractères spéciaux..). Je te laisse le faire.
Et il n'oblige pas l'utilisateur à saisir un nom.
Voilà !
MisterPoZZi
Messages postés
26
Date d'inscription
vendredi 6 décembre 2013
Statut
Membre
Dernière intervention
25 janvier 2015
3
6 déc. 2013 à 15:13
6 déc. 2013 à 15:13
Sois plus clair, j'ai pas compris -_-
sunkie59
Messages postés
55
Date d'inscription
vendredi 6 décembre 2013
Statut
Membre
Dernière intervention
1 juin 2014
6 déc. 2013 à 15:17
6 déc. 2013 à 15:17
Ce que je souhaite faire, c'est de renommer un image avant l'upload.
MisterPoZZi
Messages postés
26
Date d'inscription
vendredi 6 décembre 2013
Statut
Membre
Dernière intervention
25 janvier 2015
3
6 déc. 2013 à 15:18
6 déc. 2013 à 15:18
Le nom du fichier ? Tu veux que ton toto.jpg devienne bob.jpg ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sunkie59
Messages postés
55
Date d'inscription
vendredi 6 décembre 2013
Statut
Membre
Dernière intervention
1 juin 2014
6 déc. 2013 à 15:23
6 déc. 2013 à 15:23
Non, je m'explique :
Fichier origine de l'utilisateur : 0212145513.jpg
Nom que l'utilisateur souhaite le remplacer : toto (ce qui donne toto.jpg)
Puis upload
Fichier origine de l'utilisateur : 0212145513.jpg
Nom que l'utilisateur souhaite le remplacer : toto (ce qui donne toto.jpg)
Puis upload
MisterPoZZi
Messages postés
26
Date d'inscription
vendredi 6 décembre 2013
Statut
Membre
Dernière intervention
25 janvier 2015
3
6 déc. 2013 à 15:26
6 déc. 2013 à 15:26
Ok, donne-moi ton bout de code actuel et je le modifie
sunkie59
Messages postés
55
Date d'inscription
vendredi 6 décembre 2013
Statut
Membre
Dernière intervention
1 juin 2014
6 déc. 2013 à 15:29
6 déc. 2013 à 15:29
Formulaire :
Code PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <head> <title>Upload d'une image sur le serveur !</title> </head> <body> <?php if( !empty($message) ) { echo '<p>',"\n"; echo "\t\t<strong>", htmlspecialchars($message) ,"</strong>\n"; echo "\t</p>\n\n"; } ?> <!-- Debut du formulaire --> <form enctype="multipart/form-data" action="upload_1.php" method="post"> <fieldset> <legend>Formulaire</legend> <p> <label for="fichier_a_uploader" title="Recherchez le fichier à uploader !">Envoyer le fichier :</label> <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MAX_SIZE; ?>" /> <input name="fichier" type="file" id="fichier_a_uploader" /> <input type="submit" name="submit" value="Uploader" /> </p> </fieldset> </form> <!-- Fin du formulaire --> </body> </html>
Code PHP
<?php // Constantes define('TARGET', '../upload/'); // Repertoire cible define('MAX_SIZE', 100000); // Taille max en octets du fichier define('WIDTH_MAX', 800); // Largeur max de l'image en pixels define('HEIGHT_MAX', 800); // Hauteur max de l'image en pixels // Tableaux de donnees $tabExt = array('jpg','gif','png','jpeg'); // Extensions autorisees $infosImg = array(); // Variables $extension = ''; $message = ''; $nomImage = ''; /************************************************************ * Creation du repertoire cible si inexistant *************************************************************/ if( !is_dir(TARGET) ) { if( !mkdir(TARGET, 0755) ) { exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !'); } } /************************************************************ * Script d'upload *************************************************************/ if(!empty($_POST)) { // On verifie si le champ est rempli if( !empty($_FILES['fichier']['name']) ) { // Recuperation de l'extension du fichier $extension = pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION); // On verifie l'extension du fichier if(in_array(strtolower($extension),$tabExt)) { // On recupere les dimensions du fichier $infosImg = getimagesize($_FILES['fichier']['tmp_name']); // On verifie le type de l'image if($infosImg[2] >= 1 && $infosImg[2] <= 14) { // On verifie les dimensions et taille de l'image if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier']['tmp_name']) <= MAX_SIZE)) { // Parcours du tableau d'erreurs if(isset($_FILES['fichier']['error']) && UPLOAD_ERR_OK === $_FILES['fichier']['error']) { // On renomme le fichier $nomImage = md5(uniqid()) .'.'. $extension; // Si c'est OK, on teste l'upload if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$nomImage)) { $message = 'Upload réussi !'; } else { // Sinon on affiche une erreur systeme $message = 'Problème lors de l\'upload !'; } } else { $message = 'Une erreur interne a empêché l\'uplaod de l\'image'; } } else { // Sinon erreur sur les dimensions et taille de l'image $message = 'Erreur dans les dimensions de l\'image !'; } } else { // Sinon erreur sur le type de l'image $message = 'Le fichier à uploader n\'est pas une image !'; } } else { // Sinon on affiche une erreur pour l'extension $message = 'L\'extension du fichier est incorrecte !'; } } else { // Sinon on affiche une erreur pour le champ vide $message = 'Veuillez remplir le formulaire svp !'; } } ?>
MisterPoZZi
Messages postés
26
Date d'inscription
vendredi 6 décembre 2013
Statut
Membre
Dernière intervention
25 janvier 2015
3
Modifié par MisterPoZZi le 7/12/2013 à 14:30
Modifié par MisterPoZZi le 7/12/2013 à 14:30
Salut,
Voici les petits bouts de code te permettant de choisir l'emplacement où sera uploadé le fichier..
Tu ajoutes ton select dans le formulaire :
Tu supprimes le code présent de la ligne 18 à 25 et tu mets celui-ci après la ligne 31 (dans le if empty post) :
Et enfin, tu remplaces la ligne 58 par celle-ci :
Voici les petits bouts de code te permettant de choisir l'emplacement où sera uploadé le fichier..
Tu ajoutes ton select dans le formulaire :
<select name="categorie"> <option value="dossier1">Valeur 1</option> <option value="dossier2">Valeur 2</option> <option value="dossier3">Valeur 3</option> </select>
Tu supprimes le code présent de la ligne 18 à 25 et tu mets celui-ci après la ligne 31 (dans le if empty post) :
$chemin_final = TARGET.$_POST['categorie'].'/'; // Création du répertoire cible si inexistant if( !is_dir($chemin_final) ) { if( !mkdir($chemin_final, 0755) ) { exit('Erreur : le répertoire cible ne peut être créé ! Vérifiez que vous disposez des droits suffisants pour le faire ou créez-le manuellement.'); } }
Et enfin, tu remplaces la ligne 58 par celle-ci :
// Si c'est OK, on teste l'upload if(move_uploaded_file($_FILES['fichier']['tmp_name'], $chemin_final.$nomImage))
sunkie59
Messages postés
55
Date d'inscription
vendredi 6 décembre 2013
Statut
Membre
Dernière intervention
1 juin 2014
7 déc. 2013 à 16:41
7 déc. 2013 à 16:41
J'essaye sa ce soir, et je te dit quoi, merci
MisterPoZZi
Messages postés
26
Date d'inscription
vendredi 6 décembre 2013
Statut
Membre
Dernière intervention
25 janvier 2015
3
10 déc. 2013 à 13:20
10 déc. 2013 à 13:20
So ?
sunkie59
Messages postés
55
Date d'inscription
vendredi 6 décembre 2013
Statut
Membre
Dernière intervention
1 juin 2014
2 janv. 2014 à 15:42
2 janv. 2014 à 15:42
Désoler de ne pas avoir répondu avant, mais ton code ne fonctionne pas, peut tu me le faire près a copier coller stp ?
6 déc. 2013 à 16:25
6 déc. 2013 à 19:22