Renommer correctement un fichier uploadé conforme à une URL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Renommer correctement un fichier uploadé conforme à une URL

Re: Renommer correctement un fichier uploadé conforme à une URL

par ChrisCMoi62 » 02 févr. 2024, 10:50

Super, merci pour votre aide ;-)

Re: Renommer correctement un fichier uploadé conforme à une URL

par two3d » 02 févr. 2024, 00:07

Trop bien ! Merci pour le partage :)

Re: Renommer correctement un fichier uploadé conforme à une URL

par @rthur » 02 févr. 2024, 00:04

Moi j'utilise la fonction suivante qui fait une translitération quelque soit la langue et les caractères utilisés, puis derrière le trim(preg_replace() permet de sécuriser le tout pour être sûr de n'avoir que des chiffres et des lettres au final :
<?php
function slugify(string $str, string $sep = '-'): string{
    return trim(
        preg_replace('/[^a-z0-9]+/', $sep, 
           \transliterator_transliterate("Any-Latin; Latin-ASCII; Lower()", $str)
       ), $sep);
}

echo slugify("@Pierre est complètement dingue d'œuf ! #egg En Suédois : ø æ ; En japonais : 字");
// affiche pierre-est-completement-dingue-d-oeuf-egg-en-suedois-o-ae-en-japonais-zi

Re: Renommer correctement un fichier uploadé conforme à une URL

par two3d » 01 févr. 2024, 23:11

Tu attribut deux fois quelque chose à la variable $nouv_photo.

$nouv_photo = preg_replace('/([^.a-z0-9]+)/i', '-', $photo);
$nouv_photo = preg_replace('/([^.a-z0-9]+)/i', '-', $nouv_photo);

Sinon, je te propose ce script pour renommer le nom d'un fichier uploadé.

Re: Renommer correctement un fichier uploadé conforme à une URL

par ChrisCMoi62 » 01 févr. 2024, 18:49

Je donne mon code détaillé, je ne suis pâs expert et je ne comprends pas tout désolé

Code : Tout sélectionner

$photo = $_FILES[ 'photo' ][ 'name' ]; $tmp_file1 = $_FILES[ 'photo' ][ 'tmp_name' ]; $file1 = $_FILES[ 'photo' ][ 'type' ]; $file_type1 = $photo; $file_type_length1 = strlen( $file_type1 ) - 3; $file_type1 = substr( $file_type1, $file_type_length1 ); $file_type1 = strtolower( $file_type1 ); $nouv_photo = strtr($photo,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); $nouv_photo = preg_replace('/([^.a-z0-9]+)/i', '-', $photo);

Re: Renommer correctement un fichier uploadé conforme à une URL

par Spols » 01 févr. 2024, 18:16

Salut
regarde le nom de tes variables et pose toi la question de savoir si tu utilise la bonne à chaque ligne

Renommer correctement un fichier uploadé conforme à une URL

par ChrisCMoi62 » 01 févr. 2024, 17:30

Bonjour,
Je voudrai recommer le nom d'un fichier uploadé afin que celui-ci soit conforme à une URL, donc pas d'accent, ni d'espace etc.
Dans mon script les lettres avec accent sont supprimées, je n'arrive pas à trouver mon problème.
Merci de votre aide.

Code : Tout sélectionner

$nouv_photo = strtr($photo,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); $nouv_photo = preg_replace('/([^.a-z0-9]+)/i', '-', $photo); if ( move_uploaded_file( $tmp_file1, $rep_photo . $nouv_photo ) ) {}