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

Langage PHP Discussion :

[Upload] Uploader et renommer...


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut [Upload] Uploader et renommer...
    Bonjour, j'utilise ce code, qui fonctionne admirablement bien pour uploader de photos, j'aimerais savoir si il y a moyen de l'améliorer pour qu'il renomme automatiquement mes photos, de manière à ne pas avoir de problème de doublons... J'aimerais bien évidement que l'extension du fichier ne souffre pas de cette modification... Merci...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       $rep="..\photo\\";
       //upload de photo
       if($_FILES['photo']['size'] >0) {
       $savefile = $rep.$_FILES['photo']['name'];
          if(move_uploaded_file($_FILES['photo']['tmp_name'],$savefile))echo"Insertion photo: Ok\n";}

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    file_exists sera ton amie

  3. #3
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    file_exists, si j'ai bien compris, sert à savoir si un fichier existe déjà dans un répertoire, moi, ce que j'aimerais, ce seriat de pouvoir renommer le fichier uplodaé, c'est faisable??? Si oui, comment???

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    ben tu as juste à modifier $savefile ! regarde la doc de move_uploaded_file

  5. #5
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Je suis allé voir, jai fait ceci, mais ça fonctionne pas... il uploade le fichier mais le nom change pas... Qu'ai-je fais de travers???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	// Répertoire de stockage
    	$rep="..\photo\\";
    	//upload de photo
    	if($_FILES['photo']['size'] >0) {
    	$ext = substr( $_FILES['photo']['name'] , strrpos( $_FILES['photo']['name'] , '.') );
    	$savefile = $rep.$_POST['login'].$ext;
    	echo"<br>.$savefile";
    		if(move_uploaded_file($_FILES['photo']['tmp_name'],$savefile))echo"Insertion photo: Ok\n";
    }

  6. #6
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, j'ai trouvé ça : http://www.newdimension-fr.net/forum...hp/t-5903.html

    Ca peut peut-être t'inspirer

    Bon développement ;-)

  7. #7
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Mon code de rename semble plus ou moins fonctionner, mais un probleme persiste... le nom envoyé vers ma db ne correspond pas... quelqu'un peut-il m'expliquer???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	//recuperation des champs photo Taille max des fichiers (octets)
    	$MFS=10240;
    	// Répertoire de stockage
    	$rep="photo\\";
    	//upload de photo
    	if($_FILES['photo']['size'] >0) {
    	$ext = substr( $_FILES['photo']['name'] , strrpos( $_FILES['photo']['name'] , '.') );
    	$nvxnom = $tempo1; 
    	$nvxnom =$nvxnom.$tempo2; 
    	$nvxnom =$nvxnom.$tempo3;
    	$savefile = $rep.$nvxnom.$ext;
    	echo"<br>.$savefile";
    		if(move_uploaded_file($_FILES['photo']['tmp_name'],$savefile))echo"Insertion photo: Ok\n";	}
    La valeur de save file est 111 pour le premier article et l'echo l'affiche correctement. ensuite, je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		$requete2="SELECT add_article('".$test2."','".$test."','".$test3."','".$_POST['qtot']."','".$_POST['prixunit']."','".$_POST['cautionunit']."','".$savefile."')";
    Et la valeur dans ma db est "photoJ". Quelqu'un sais d'où ça provient??? Le fichier quand à lui arrive dans le bon répertoire et avec le nom 111...

  8. #8
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Salut

    Tu pourrais par exemple adapter cette solution dans ta page d'insertion :

    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
    if($HTTP_POST_FILES['file']['type']=="image/pjpeg") {
    	$ext="jpg";
    }
    elseif($HTTP_POST_FILES['file']['type']=="image/gif") {
    	$ext="gif";
    }
    if($HTTP_POST_FILES['file']['type']=="image/pjpeg"|$HTTP_POST_FILES['file']['type']=="image/gif") {
     
    if (isset($file))
    {
     
    $destination="nom_de_ton_repertoire";
     
    $autre_nom = Renommage();
     
    $dest_file="../$destination/$autre_nom.$ext";
     
     
    // exemple de requete
    $query = "UPDATE tatable SET img='$dest_file' WHERE id='$id'";
    mysql_query($query);
     
    $res_copy=@copy($file,$dest_file);
    @move_uploaded_file($file,$dest_file);
     
    }
    Et pour la fonction qui renomme les images de façon aléatoire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function Renommage() {
      $salt = "abchefghjkmnpqrstuvwxyz0123456789";
      srand((double)microtime()*1000000); 
      	$i = 0;
      	while ($i <= 7) {
        		$num = rand() % 33;
        		$tmp = substr($salt, $num, 1);
        		$rdm = $rdm . $tmp;
        		$i++;
      	}
      	return $rdm;
    }
    Remarque que pour la ligne suivante, celà dépend du niveau hiérarchqiue où se situe ton répertoire dans ta racine:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $dest_file="../$destination/$autre_nom.$ext"; 
    OU :
    $dest_file="$destination/$autre_nom.$ext";
    Cette solution te permet de renommer le nom des images, tout en préservant les extentions d'origine. (Variable $ext)

Discussions similaires

  1. [Upload] Upload, renommer le fichier
    Par Alain15 dans le forum Langage
    Réponses: 15
    Dernier message: 14/02/2006, 14h06
  2. [Upload] upload de jpg et bmp impossible
    Par cmoijulie dans le forum Langage
    Réponses: 2
    Dernier message: 06/10/2005, 09h10
  3. [Upload] Upload : erreur et envoi multiple
    Par linou dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2005, 09h41
  4. [Upload] upload multiple
    Par mat10000 dans le forum Langage
    Réponses: 3
    Dernier message: 16/06/2005, 17h07
  5. [upload] Upload d'un dossier
    Par Touxe dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/02/2005, 16h30

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