IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Renommner un fichier uploadé


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Points : 89
    Points
    89
    Par défaut Renommner un fichier uploadé
    Bonjour à tous!

    J'ai créé un formulaire simple qui permet d'uploader une image, avec un titre, et des renseignements divers. Le tout étant repris dans l'affichage d'une Galerific.
    Cela fonctionne, mais le nom de l'image reste inchangé.

    Ma question: Est-il possible de reprendre ce qui est saisi dans l'input IMMAT afin d'en faire le nouveau nom de l'image? ( $immat=$_POST['immat']

    Mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <table class="tg" border="0" style="filter:Blur(strength=50)">
    	<tr>
    		<td width="400" align="center">
    		</br>
    		<input class="css_button" type="file" name="image" value=""></br></br>
    		</td>
    		<td align="center" class="tg-yaw" width="400">
    		<input class="inputs" type="text" required="required"  value="" maxlength="5" placeholder="IMMAT" name="immat" value="">
    		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    		<input class="inputsss" type="text" required="required"  value="" maxlength="40" placeholder="Type avion" name="title" value="">
    		</td>
    	</tr>
    	<tr>
    		<td align="center">
    		<textarea class="inputss" required="required" placeholder="English Description" name="infos" cols="50" rows="10"></textarea></br></br>
    		</td>
    		<td align="center">
    		<textarea class="inputss" required="required" value="" placeholder="Description en Français" name="infosfr" cols="50" rows="10"></textarea></br></br>
    		</td>
    	</tr>
    </table>
     
    <input class="css_button" type="submit" value="Enregistrer" name="upload"></br></br>
    </div>
    </form>
     
    <?php
     
    if(isset($_FILES['image']))
    { 
         $dossier = 'photos/';
         $fichier = basename($_FILES['image']['name']);
         if(move_uploaded_file($_FILES['image']['tmp_name'], $dossier . $fichier)) 
         {
    if(isset($_POST['immat']))      $immat=$_POST['immat'];
    	else      $immat="";
    if(isset($_POST['infos']))      $infos=$_POST['infos'];
    	else      $infos="";
    if(isset($_POST['infosfr']))      $infosfr=$_POST['infosfr'];
    	else      $infosfr="";
    if(isset($_POST['title']))      $title=$_POST['title'];
    else      $title="";
     
     
    if(empty($immat) OR empty($infos) OR empty($infosfr) OR empty($title))
    	{ 
    	echo "";
    	} 
    	 //Aucun champ n'est vide, on peut enregistrer dans la table 
    	else      
    {
    	$jpg= $immat .'.jpg';
    	$db = mysqli_connect($localhost,$login,$pwd,$dbName)  or die('Erreur de connexion '.mysql_error());       
    	$sql = "INSERT INTO images(title, immat, jpg, infos, infosfr) VALUES('$title', upper('$immat'), '$jpg', '$infos', '$infosfr')"; 
    	$res= $db -> query($sql) or die('Erreur SQL DE MERDE !'.$sql.'<br>'.mysql_error()); 
    	mysqli_close($db); 
     
    ?>

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $fichier = basename($_FILES['image']['name']);
    if(move_uploaded_file($_FILES['image']['tmp_name'], $dossier . $fichier))
    C'est ce code qui déplace ton image après son upload , il suffit donc de changer la valeur de la variable $fichier pour ce que tu veux
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Points : 89
    Points
    89
    Par défaut Merci
    Merci ! En fait, je n'osais pas changer $fichier, car je croyais que la fonction move avait besoin du nom d'origine pour tourner.

    Mais FAUX....

    Voilà mon code modifié pour ceux que ça intéresse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    if(isset($_POST['infos']))      $infos=$_POST['infos'];
    	else      $infos="";
    if(isset($_POST['infosfr']))      $infosfr=$_POST['infosfr'];
    	else      $infosfr="";
    if(isset($_POST['title']))      $title=$_POST['title'];
    else      $title="";
    if(isset($_POST['immat']))      $immat=$_POST['immat'];
    	else      $immat="";
    if(isset($_FILES['image']))
    { 
         $dossier = 'photos/';
         $fichier = $immat.'.jpg';
         if(move_uploaded_file($_FILES['image']['tmp_name'], $dossier . $fichier)) 
         {
    ............

    Prochaine étape, création à la volée de deux images redimensionnées
    --> Image affichée
    --> miniature

    Merci le beau tuto à Jreaux!

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par Lechette Voir le message
    Prochaine étape, création à la volée de deux images redimensionnées
    --> Image affichée
    --> miniature
    Merci le beau tuto à Jreaux!
    Si c'est pour faire des redimensionnements et/ou recadrages (crop) lors d'un upload, tu peux regarder ICI.

    Ce module d'upload possède des exemples de traitements + upload d'images tous fonctionnels avec upload multiple et création de plusieurs vignettes pour chaque image. Avec en prime des infos en temps réel (progression, temps restant etc.) et la gestion des erreurs fatales en cas de dépassement de la configuration serveur (entre autre "memory limit") lors du traitement des images.
    (pour autant ce module n'est pas réservé aux images, il sait aussi télécharger des très gros fichiers en surpassant les limitations serveur "upload_max_filesize", "post_max_size" et "max_file_uploads")

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Points : 89
    Points
    89
    Par défaut
    Merci!!

    Ben j'ai envie de mettre les mains dans le camboui aussi, et j'ai pas trop envie de toucher à Ajax pour le moment.

    Le script de Jreaux me donne du fil à retordre, je vais tenter de faire fonctionner celui là en premier..

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Bah si tu aimes le camboui, je peux te confirmer qu'entre surpasser ou gérer des éventuelles erreurs d'upload et gérer les erreurs que peuvent provoquer des redimensionnements ou recadrages d'images, là tu vas être servi, y'a du chantier rien que pour ça sans même compter les fonctionnalités visibles

    Enfin si l'envie te prends de tester le module d'upload cité plus haut, tu ne seras pas dépaysé par les codes de redimensionnement/recadrage côté serveur car ils sont très inspirés du tuto de Jreaux

    Au passage je montre dans l'exemple "redimensionnement optimisé" comment gagner des ressources serveur en se servant du premier redimensionnement pour faire les suivants (si plusieurs redimensionnements de la même image).
    Sur le principe il s'agit de faire le premier redimensionnement en écrasant le fichier temporaire original, puis de se servir de cette nouvelle source pour faire les redimensionnements suivants. Si en plus on veut sauvegarder l'image originale il suffit auparavant de faire un copy.
    Les gains sont spectaculaires, jusqu'à plusieurs centaines de %, en fonction de la résolution originelle de l'image et du nombre de redimensionnements à faire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] Type MIME de fichiers à uploader
    Par franculo_caoulene dans le forum Langage
    Réponses: 6
    Dernier message: 27/10/2005, 09h49
  2. Fichier upload endommagé ?
    Par zefrit dans le forum Linux
    Réponses: 26
    Dernier message: 14/10/2005, 15h16
  3. Supprimer fichier uploader avec aspSmartUpload
    Par julio_097 dans le forum ASP
    Réponses: 2
    Dernier message: 11/08/2005, 16h27
  4. renommer un fichier uploadé
    Par Sowa dans le forum ASP
    Réponses: 2
    Dernier message: 07/02/2005, 09h23
  5. Réponses: 10
    Dernier message: 18/11/2003, 18h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo