nom de fichier lors d'un upload

Eléphant du PHP | 83 Messages

08 sept. 2008, 22:39

Bonjour,

J'ai un problème d'upload dans un form tout ce qu'il y a de plus classique avec un fichier dont le nom contient des accents.

Normalement j'ai un :

form ---> action (avec un traitement de l'image) ----> insertion dans mysql

Hors, en vérifiant pas à pas ce qu'il se passe, les fichiers avec accents ne dépassent même pas la première étape, celui du form :

Code : Tout sélectionner

photo : <input type='hidden' name='MAX_FILE_SIZE' value='100000'><input size='30%' name='photo' type='file'>
Il y a-t-il un moyen de formater les noms qui contiennent des accents/ caractères spéciaux avant d'envoyer le formulaire ?

Mammouth du PHP | 881 Messages

09 sept. 2008, 06:09

Tout traitement avant envoi doit se faire par un onsubmit dans la balise form

Exemple:

Code : Tout sélectionner

<form method="post" enctype="multipart/form-data" name="EnvoyerPhoto" onSubmit="return Verif(this.form, 'Photo')">
Dans la partie et HTML, et ci-bas entre les balise <script>

Code : Tout sélectionner

function Verif (Contenu, Quel) { if (Quel == 'Photo') { if (document.EnvoyerPhoto.NumReleve.value == 0) { alert("Votre photo doit obligatoirement être liée à un relevé existant"); return false; } return true; } }
Soyez artisans de paix

Eléphant du PHP | 83 Messages

09 sept. 2008, 20:44

Tout traitement avant envoi doit se faire par un onsubmit dans la balise form

Exemple:

Code : Tout sélectionner

<form method="post" enctype="multipart/form-data" name="EnvoyerPhoto" onSubmit="return Verif(this.form, 'Photo')">
Dans la partie et HTML, et ci-bas entre les balise <script>

Code : Tout sélectionner

function Verif (Contenu, Quel) { if (Quel == 'Photo') { if (document.EnvoyerPhoto.NumReleve.value == 0) { alert("Votre photo doit obligatoirement être liée à un relevé existant"); return false; } return true; } }
Salut Patriboom,

Merci pour ce code, c'est vraiment sympa. Je vais m'en servir pour vérifier l'existence du fichier uploadé.

Cependant je me suis rendu compte que mon problème est autre :

-sous linux : firefox déconne et n'upload pas les photos dont le nom contient des accents
-sous windows : ie et firefox fonctionnent parfaitement.

Bon, vu que je vais avoir 0,000003 % de visiteurs sous linux... c'est pas grave !!!

Merci encore et à bientôt !!

Mammouth du PHP | 881 Messages

09 sept. 2008, 21:48

À mon avis, il vaut toujours mieux traiter en fonction de la plus grande contrainte, c'est-à-dire que si Linux/FF refuse les accents, considérons que tous les autres refusent aussi.

Dans le traitement en javascript que tu feras dans Verif(), tu peux trouver et remplacer les lettres accentuées, peu importe le navigateur, peu importe le Système d'exploitation. C'est ce que je te propose. Tu trouveras des ressources javascript facilement sur internet, par exemple ceci: http://www.javascriptfr.com/code.aspx?ID=17590
Soyez artisans de paix

ViPHP
ViPHP | 2291 Messages

09 sept. 2008, 22:30

Bonjour,

J'ai un problème d'upload dans un form tout ce qu'il y a de plus classique avec un fichier dont le nom contient des accents.

Normalement j'ai un :

form ---> action (avec un traitement de l'image) ----> insertion dans mysql

Hors, en vérifiant pas à pas ce qu'il se passe, les fichiers avec accents ne dépassent même pas la première étape, celui du form :

Code : Tout sélectionner

photo : <input type='hidden' name='MAX_FILE_SIZE' value='100000'><input size='30%' name='photo' type='file'>
Il y a-t-il un moyen de formater les noms qui contiennent des accents/ caractères spéciaux avant d'envoyer le formulaire ?
Salut,
Une solution ici

Eléphant du PHP | 83 Messages

10 sept. 2008, 21:33

Bonjour à vous deux et merci pour votre aide !!

Cependant, ça ne marche car ff/linux n'upload aucun fichier, comme si ff n'arrivait pas à trouver le fichier par la suite. Utf-8 ou iso15 ne changent rien non plus.

:roll: