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 :

renommer l'extension de fichiers en minuscules


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 399
    Points : 5 754
    Points
    5 754
    Billets dans le blog
    1
    Par défaut renommer l'extension de fichiers en minuscules
    Bonjour,

    j'ai codé un script qui permet d'envoyer un mail avec une pièce attachée ; je dois tenir compte de l'extension du fichier ; pour simplifier, j'aimerais la convertir en minuscules. Or si je le fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     $format="%[^.].%s";
     $nom=$_FILES['file']['name'];
     $nb=sscanf($nom,$format,$nomfichier,$ext);
     $ext=strtolower($ext);
     $nom=$nomfichier.".".$ext;
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	$chemin_destination = './';	
    	$res_upload=move_uploaded_file($_FILES['file']['tmp_name'], $nom);
    	$adr_file=$chemin_destination.$nom;
    (le script nécessite un upload du fichier), le mail se fait bien, mais le nom du fichier est déformé (ex : copie_de_xxx.JPG devient copie). Quelle est la solution ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    As-tu debugué un minimum ? En particulier a quel moment perds-tu un bout du nom de fichier ?

    Au passage il y a quelque chose d'incoherent dans ton script :
    si le fichier n'a pas besoin d'etre conservé, il n'y a pas lieu de le renommer ni d'utiliser move_uploaded_file() : c'est juste le nom de la pièce jointe qui change.
    Si le fichier doit etre conservé, le move_uploaded_file() doit se faire vers le repertoire de destination avec le nouveau nom.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 399
    Points : 5 754
    Points
    5 754
    Billets dans le blog
    1
    Par défaut
    Je viens de faire un nouvel essai : l'upload marche bien ; c'est après que le nom est perdu. (et du coup, je ne comprends pas).
    D'autre part, tu dis que l'upload ne sert à rien si le fichier ne doit pas être conservé : c'est bien le cas, vu qu'après l'envoi du mail, je l'efface (unlink), mais si je supprime l'upload, il n'y a plus de mail...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si ton fichier sert juste pour le mail, il n'y a pas lieu de renommer, de deplacer ou de supprimer le fichier uploadé.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 399
    Points : 5 754
    Points
    5 754
    Billets dans le blog
    1
    Par défaut
    Je renomme l'extension du fichier, car les majuscules sont souvent employées et que je préfère éviter de les gérer ; c'est déjà assez long comme ça :
    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
    switch ($ext) {
    case "avi": $mime="video/avi"; break;
    case "bmp": $mime="image/bmp"; break;
    case "c": $mime="text/x-c"; break;
    case "com": $mime="text/plain"; break;
    case "css": $mime="text/css"; break;
    case "doc": $mime="application/msword"; break;
    case "dot": $mime="application/msword"; break;
    case "eps": $mime="application/postscript"; break;
    case "exe": $mime="application/octet-stream"; break;
    case "gif": $mime="image/gif"; break;
    case "gz": $mime="application/x-compressed"; break;
    case "h": $mime="text/x-h"; break;
    case "hlp": $mime="application/hlp"; break;
    case "htm": $mime="text/html"; break;
    case "html": $mime="text/html"; break;
    case "ico" : $me="image/x-icon"; break;
    case "jpeg": $mime="image/jpeg"; break;
    case "jpg":$mime="image/jpeg"; break;
    case "log": $mime="text/plain"; break;
    case "m2v": $mime="video/mpeg"; break;
    case "mht": $mime="message/rfc822"; break;
    case "mime": $mime="message/rfc822"; break;
    case "mov": $mime="video/quicktime"; break;
    case "mpeg":  $mime="video/mpeg"; break;
    case "mpg": $mime="video/mpeg"; break;
    case "pdf": $mime="application/pdf"; break;
    case "png": $mime="image/png"; break;
    case "pot": $mime="application/mspowerpoint"; break;
    case "pps": $mime="application/mspowerpoint"; break;
    case "ppt": $mime="application/powerpoint"; break;
    case "ps": $mime="application/postscript"; break;
    case "rtf": $mime="application/x-rtf"; break;
    case "tar": $mime="application/x-tar"; break;
    case "tiff": $mime="image/tiff"; break;
    case "wav" : $mime="audio/wav"; break;
    case "wmv" : $mime="audio/wmv"; break;
    case "xls": $mime="application/excel"; break;
    case "xml": $mime="application/xml"; break;
    case "zip": $mime="application/zip"; break;
    case "wga": $mime="application/wga"; break;
    case "rar": $mime="application/rar"; break;
    default: echo "extension non pr&eacute;vue<br>";
     
    }
    d'où mon souhait de renommer les majuscules en minuscules et je supprime le fichier uploadé car je ne l'uploade que pour envoyer le mail et je ne souhaite pas encombrer l'espace FTP...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Les fichiers uploadés sont déjà supprimés a la fin du script ; il n'y a pas lieu de le faire à la main.

    Pour le renommage, il ne sert a rien puisque le nom du fichier dans le mail est défini par le script d'envoi du mail et non par le nom que porte réellement le fichier.
    C'est au niveau de la conception du mail que tu dois éliminer tes majuscules, renommer physiquement le fichier n'a pas d'intérêt.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 399
    Points : 5 754
    Points
    5 754
    Billets dans le blog
    1
    Par défaut
    OK, mais pour l'envoi du mail, j'avais utilisé un code (venant justement de ce forum), et je ne sais pas quelle variable changer. Peux-tu m'aider ?
    Code actuel :
    Code php : 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
    	$base=basename($adr_file);
     
     $format="%[^.].%s";
     $nom=$_FILES['file']['name'];
     $nb=sscanf($nom,$format,$nomfichier,$ext);
     $ext=strtolower($ext);
     	echo "ext=".$ext."<br>";
     $nom=$nomfichier.".".$ext; 	
     
     
    switch ($ext) {
    case "avi": $mime="video/avi"; break;
    case "bmp":etc...
    default: echo "extension non pr&eacute;vue<br>";
     
    }
     
    	$message.='--'.$frontiere."\n";
    	$message.= 'Content-Type: '.$mime.'; name='.$base."\n";
    	$message.= 'Content-Transfer-Encoding: base64'."\n";
    	$message.= 'Content-Disposition:attachement; filename='.$base."\n\n";
    	$message.= chunk_split(base64_encode(file_get_contents($adr_file)))."\n";
    	$message.='--'.$frontiere.'--'."\n";}
    	else $message=$msg;
     
    	$sujet="formulaire";
     
     
     
     
    	(@mail($destinataire,$sujet,$message,$headers));
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    juste une petite question, ce code la il sort d'où ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $format="%[^.].%s";
    $nom=$_FILES['file']['name'];
    $nb=sscanf($nom,$format,$nomfichier,$ext);
    $ext=strtolower($ext);
    echo "ext=".$ext."<br>";
    $nom=$nomfichier.".".$ext;
    ca fait plusieurs fois que je le vois, donc si on peu le surpimer a la source ca serait pas mal, vu que pathinfo fait le meme boulot...

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 399
    Points : 5 754
    Points
    5 754
    Billets dans le blog
    1
    Par défaut
    Le code est de moi, vu que je ne connaissais pas pathinfo. Je viens de le remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $nom=$_FILES['file']['name'];
    $ext== pathinfo($nom);
     $nom=$nomfichier.".".$ext;
      	echo "ext=".$ext."<br>";
    mais ça me retourne une extension vide : quelle est l'erreur ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Le code est de moi, vu que je ne connaissais pas pathinfo. Je viens de le remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $nom=$_FILES['file']['name'];
    $ext== pathinfo($nom);
     $nom=$nomfichier.".".$ext;
      	echo "ext=".$ext."<br>";
    mais ça me retourne une extension vide : quelle est l'erreur ?
    déja y'a 2 égales, et pathinfo te revoie un tableau,
    d'ailleur active les erreurs PHP parce que la il devrait pas aimé tout ce que ta mis, verifie ton display_errors et error_reporting

  11. #11
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Bonjour,

    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
     
    <?php 
     
    $fichier="test.php";
     
    $ext= pathinfo($fichier, PATHINFO_EXTENSION);
     
    if(empty($ext)) 
    {
    	echo "pas d'extension !";
    }
    else 
    {
    	echo "extension : ".$ext;	
    }
     
    ?>

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par ska_root Voir le message
    Bonjour,

    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
     
    <?php 
     
    $fichier="test.php";
     
    $ext= pathinfo($fichier, PATHINFO_EXTENSION);
     
    if(empty($ext)) 
    {
    	echo "pas d'extension !";
    }
    else 
    {
    	echo "extension : ".$ext;	
    }
     
    ?>
    c'est ce qu'il veut, il veut le nom du fichier entier mais avec l'extension en minuscule

  13. #13
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 399
    Points : 5 754
    Points
    5 754
    Billets dans le blog
    1
    Par défaut
    Sans avoir lu les 2 derniers posts, j'ai trouvé une solution :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $nom=$_FILES['file']['name'];
    $ext= pathinfo($nom);
    $ext=$ext['extension'];
    echo "ext=".$ext."<br>";
    mais par contre, j'ai encore le souci de transformer l'extension en minuscules...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Sans avoir lu les 2 derniers posts, j'ai trouvé une solution : mais par contre, j'ai encore le souci de transformer l'extension en minuscules...
    pourtant tu l'as fait dans ton premier code...

  15. #15
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 399
    Points : 5 754
    Points
    5 754
    Billets dans le blog
    1
    Par défaut
    Oui, je l'avais fait (strtolower), mais ce que je n'ai pas compris, c'est que si le fichier que j'uploade a le bon nom (avec une extension en minuscule), le fichier joint dans le mail a un mauvais nom (même si quand on ouvre le fichier, il est bon).
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  16. #16
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    D'après les lignes ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $message.= 'Content-Type: '.$mime.'; name='.$base."\n";
    //
    $message.= 'Content-Disposition:attachement; filename='.$base."\n\n";
    Le résultat de la transformation du nom du fichier (nom + extension) en minuscules devra se situer dans la variable $base.

  17. #17
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Oui, je l'avais fait (strtolower), mais ce que je n'ai pas compris, c'est que si le fichier que j'uploade a le bon nom (avec une extension en minuscule), le fichier joint dans le mail a un mauvais nom (même si quand on ouvre le fichier, il est bon).

    parce que tu va chercher $base dans le mail

  18. #18
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 399
    Points : 5 754
    Points
    5 754
    Billets dans le blog
    1
    Par défaut
    Ca ne marche toujours pas si l'extension est en majuscule ; sauriez-vous me dire pourquoi :

    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
     $nom=$_FILES['file']['name'];
    $pathinfo= pathinfo($nom);
    $ext=$pathinfo['extension'];
    $nomfichier=$pathinfo['basename'];
    $format="%[^.].%s";
    $nb=sscanf($nomfichier,$format,$basename,$extension);
    $nom=$basename.".".$ext;
    $adr_file=$nom; // avant changer l'ext
    $ext=strtolower($ext);
    $nom=$basename.".".$ext;
    $base=basename($nom);	// après chgt
    switch ($ext) {
    case "avi": $mime="video/avi"; break;
    case "bmp":etc...
    default: echo "extension non pr&eacute;vue<br>";
    }
    	$message.='--'.$frontiere."\n";
    	$message.= 'Content-Type: '.$mime.'; name='.$base."\n";
    	$message.= 'Content-Transfer-Encoding: base64'."\n";
    	$message.= 'Content-Disposition:attachement; filename='.$base."\n\n";
    	$message.= chunk_split(base64_encode(file_get_contents($adr_file)))."\n";
    	$message.='--'.$frontiere.'--'."\n";}
    	else $message=$msg;
     
    	$sujet="formulaire";
     
    	@mail($destinataire,$sujet,$message,$headers);
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  19. #19
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Il ne faut pas modifier la variable $adr_file.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $adr_file=$nom; // avant changer l'ext
    Car elle est utilisée pour accéder au fichier comme on peut le voir dans la ligne ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message.= chunk_split(base64_encode(file_get_contents($adr_file)))."\n";

  20. #20
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Ca ne marche toujours pas si l'extension est en majuscule ; sauriez-vous me dire pourquoi :

    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
     $nom=$_FILES['file']['name'];
    $pathinfo= pathinfo($nom);
    $ext=$pathinfo['extension'];
    $nomfichier=$pathinfo['basename'];
    $format="%[^.].%s";
    $nb=sscanf($nomfichier,$format,$basename,$extension);
    $nom=$basename.".".$ext;
    $adr_file=$nom; // avant changer l'ext
    $ext=strtolower($ext);
    $nom=$basename.".".$ext;
    $base=basename($nom);	// après chgt
    switch ($ext) {
    case "avi": $mime="video/avi"; break;
    case "bmp":etc...
    default: echo "extension non pr&eacute;vue<br>";
    }
    	$message.='--'.$frontiere."\n";
    	$message.= 'Content-Type: '.$mime.'; name='.$base."\n";
    	$message.= 'Content-Transfer-Encoding: base64'."\n";
    	$message.= 'Content-Disposition:attachement; filename='.$base."\n\n";
    	$message.= chunk_split(base64_encode(file_get_contents($adr_file)))."\n";
    	$message.='--'.$frontiere.'--'."\n";}
    	else $message=$msg;
     
    	$sujet="formulaire";
     
    	@mail($destinataire,$sujet,$message,$headers);

    pareil pourquoi tu gardes $base ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message.= 'Content-Type: '.$mime.'; name='.$base."\n";
    relis toi...
    en pslus tu garde ton ancien code melangé avec le nouveau, c'est du grand n'importe quoi

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Batch] Comment renommer une série de fichiers en minuscule
    Par Olivier Regnier dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 22/09/2017, 10h22
  2. [XL-97] Fichier renommé sans extension
    Par wahoo dans le forum Excel
    Réponses: 0
    Dernier message: 22/05/2013, 11h34
  3. Réponses: 2
    Dernier message: 08/07/2012, 22h07
  4. Renommer l'extension d'un fichier
    Par cyprien95 dans le forum Langage
    Réponses: 4
    Dernier message: 31/12/2010, 10h10
  5. PHP5 et extension de fichiers...
    Par Royd938 dans le forum Langage
    Réponses: 3
    Dernier message: 17/10/2005, 10h38

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