> Tous les forums > Forum des Webmasters
 upload de fichier avec nom accentué vers un site
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
jmsch
  Posté le 24/11/2018 @ 10:26 
Aller en bas de la page 
Petit astucien

Bonjour,

je suis code actuellement une petite application pour uploader des documents dans un dossier de nom site afin de les partager facilement avec mes collègues.

Mon soucis, c'est un problème avec les caractères accentué dans les nom des fichier.
Mes scriptes et ma base de donnée est en utf8.

Lors de l'upload, la base de donnée est correctement incrémenté y compris pour les caractères accentué, par contre le nom du fichier, s'il y a des lettres accentué, apparaisse comme ça dans le dossier : "aéé à à èè test.txt" au lieu de "aéé ààèè test.txt"
L'ensemble fonctionne mais je voudrais bien comprendre ce problème d'encodage et si possible le corriger.

//scripte qui upload le fichier
$resultat = move_uploaded_file($_FILES['mon_fichier']['tmp_name'],$nom_ext);

// lien dans le template pour acceder au fichier
<a href="document/{$p->up_finalname}" target="_blank">{$p->up_filename} {$p->up_ext}</a>

Si je modifie mon scripte comme ça pour obliger utf8 les nom sont correctement orthographié même pour les accents mais je n'arrive plus à accéder au fichier.

//scripte qui upload le fichier

$nom_ext = iconv('UTF-8', 'CP1252', $nom_ext);
$resultat = move_uploaded_file($_FILES['mon_fichier']['tmp_name'],$nom_ext);

// lien dans le template pour acceder au fichier
<a href="document/{$p->up_finalname|utf8_encode}" target="_blank">{$p->up_filename|utf8_encode} {$p->up_ext}</a>

Merci pour votre assistance.



Modifié par jmsch le 24/11/2018 10:28
Publicité
zoulouman
 Posté le 24/11/2018 à 21:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Salut,

Ca a été dit et répété, encore et encore.
Pas d'espaces ou de caractères spéciaux dans les noms de fichiers ! (Les accents sont des caractères spéciaux).

Si un étranger veut un fichier ou une page qui contient des accents, il fait comment ? Il n'a pas les accents sur son clavier !



Modifié par zoulouman le 24/11/2018 21:50
midnightblue
 Posté le 26/11/2018 à 13:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Of course zoulouman...mais c'est difficile, voire impossible, d'obtenir de correspondants ou intervenants novices ou jemenfoutistes, un bon nommage des fichiers.

A défaut...

peut-être renommer le fichier durant l'upload... un truc du style :

<?php

move_uploaded_file($tmp_file,$content_dir.$name_file);

// ici le script (à trouver ou à créer) pour remplacer, dans le nom du fichier, les lettres accentuées et signes spéciaux en lettres non accentuées et caractères ad hoc.
// Principe : $new_name_file=str_replace("é","e",$name_file);
// et on conclut l'upload par...

rename($content_dir.$name_file,$content_dir.$new_name_file);

?>

A+

*µ*

zoulouman
 Posté le 26/11/2018 à 19:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

C'est lui, Jmsch, qui upload les fichiers. Il suffit de savoir ce qu'on fait.

Sinon, si c'est la populace qui verse des fichiers sur le serveur, là oui, il faut renommer.
Sur mon serveur, avec les images qui peuvent être uploadées par tous, j'ai fait au plus simple et avec toutes ces images. Le nom devient le timestamp de leur arrivée sur le serveur et c'est fini.
Certes, c'est pas pratique pour un humain, mais vu que ça n'est utilisé quasiment toujours qu'une seule fois pour illustrer un propos au moment de l'upload, ça ne pose pas de souci.

jmsch
 Posté le 28/11/2018 à 08:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci pour vos réponses.

Alors oui dans l'idéale pas de nom ni d'accent dans les nom de dossier.
Pour l' upload c'est moi ou d'autres personnes de l’association qui le fessons.

Renommer le fichier c'est une piste que je vais exploiter.
Ce qui me gène dans ce choix c'est que la personne qui va télécharger le fichier n'aura plus le nom d'origine.

Et si je le laisse comme ça. Si je ne change rien, le nom "aéé ààèè test.txt" du fichier sera orthographié comme ça "aéé à à èè test.txt" dans le dossier (personne ne le voit)

Quand on le re-télécharge la conversion est faite automatiquement et on retrouve le nom d'origine.
Mise à par que ce n'est pas très joli cela posera il un problème ?

zoulouman
 Posté le 28/11/2018 à 18:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bien sûr que ça pose problème, sinon tu ne serais pas ici à chercher de l'aide.

Il faut bannir les accents, les espaces et les caractères spéciaux dans les noms de fichiers.
Ca n'a rien à voir avec l'encodage de tes pages comme tu le demandais au début. C'est le système d'exploitation de Linux et son système de fichiers qui gère ça, ce n'est pas modifiable.

Ton Windows et son système de fichiers ne sont pas étudiés pour le net. C'est l'exemple de ce qu'il ne faut pas faire.

jmsch
 Posté le 05/12/2018 à 11:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Voilà qui est fait.

Supression des caractère accentué et des espaces que je remplace par un tiret bas. Merci à vous.

J'ai une seconde question et pour le moment je ne sais pas la meilleure solution pour la traiter. Aurait tu une idée?

Pour communiquer avec nos membres exemple invitation à un événement je veux créer des pdf qui seront envoyés par mail.

Actuellement les documents sont sous format Word et envoyé manuellement par mail. L'idée serait via php d'ouvrir le Word y inclure adresse et autre infos puis générer le pdf qui sera envoyé par mail.

Cela te semble realisable ou vois tu une autre méthode sachant que les pdf via php je sais faire.... c la partie import depuis word que je ne métrise pas du tout?

zoulouman
 Posté le 05/12/2018 à 16:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Word n'étant pas du tout un standard sur le web, tu risques d'avoir des soucis.
Perso, je ne travaille pas avec Office et la clique Word, Excel, etc.

PHP permet de convertir un fichier en PDF, mais si c'est du format propriétaire Microsoft, ça risque fort de ne pas marcher.
Tu as essayé avec un format ouvert comme celui de OpenOffice ?

Sur ce point précis, je ne sais pas du tout. Quand j'ai des PDF à créer, je le fais avec OpenOffice et tout va bien.
Je ne possède pas Microsoft Office et je le trouve inutile. OpenOffice fait la même chose mais en "free" et licence libre.

Sur le net, il faut bannir les formats propriétaires qui obligent tes visiteurs à acheter des licences pour un simple fichier. Sans parler du référencement qui est catastrophique avec ce type de fichier.
Tes visiteurs iront chercher l'info ailleurs, et elle existe, sois-en convaincu.

jmsch
 Posté le 05/12/2018 à 16:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Tour à fait daccacev toi.

L'idée ct de réaliser le document sur word avec des champs à compléter via php.

Une X les champs remplis créer le pdf qui lui serait envoyé. Je ne veux pas envoyer le Word.

zoulouman
 Posté le 05/12/2018 à 16:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Non ! Avec Word tu ne pourras pas !

Si il s'agit de produits soumis à licence, donc des produits propriétaire, PHP n'a pas les fonctions pour ça.
PHP & Apache sont open source, sous licence libre, ils n'acceptent pas dans leur code les produits propriétaires.

Dernier exemple en date :

Avant, MySQL était un gestionnaire de bases de données sous licence libre.
Du jour au lendemain, face à leur succès, ils ont décidé de devenir payant avec la licence qui va bien avec.

Qu'à fait PHP ? Ils ont abandonné le support MySQL et toutes les fonctions concernant MySQL de Oracle se sont volatilisées à partir de la version 7 de PHP !

Tu es dans le monde de l'open source, oublie Microsoft et utilise Open-office qui fait le même boulot !
PHP ne prendra jamais en compte un produit Microsoft avec des fonctions spécifiques et dédiées.

jmsch
 Posté le 07/12/2018 à 13:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci pour ta réponse.

Je vais ouvrir un nouveau sujet pour cette discussion.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Boîtier SSD M.2 NVMe/SATA Orico USB 3.2 Type C à 17,77 €
17,77 € 25 € -29% @Amazon

Amazon fait une promotion sur le boîtier SSD M.2 NVMe Orico USB 3.2 Type C qui passe à 17,77 € au lieu de 25 €. Ce boîtier vous permettra de transformer en SSD externe un SSD interne au format M.2 KEY (2280, 2260, 2242 et 2230) NVMe ou SATA récupéré dans un ordinateur après un upgrade de capacité par exemple.

Ce boitier en aluminium permet de dissiper la chaleur, prend en charge le TRIM et offre des débits jusqu'à 1000 Mo/s en NVMe grâce à l'USB 3.2 GEN2 (450 Mo/s en SATA). Câble USB C -> USB C fourni.


Voir le bon plan
Adaptateur Bluetooth 5.0 USB TP-Link UB500 à 10,99 €
10,99 € 15 € -27% @Amazon

Amazon fait une promotion sur l'adaptateur Bluetooth 5.0 USB TP-Link UB500 qui passe à 10,99 €. Cet adaptateur à brancher sur un port USB va vous permettre d'ajouter le bluetooth à votre ordinateur et d'utiliser ensuite sans fil vos périphériques bluetooth : souris, clavier, casque, manette, téléphone, ...

L'adaptateur UB500 dote votre PC d'une technologie Bluetooth 5.0 plus avancée. Il offre des débits de connexion plus rapides et une portée plus étendue que la technologie Bluetooth 4.0. Rétrocompatible avec Bluetooth V4.0/3.0/2.1/2.0/1.1

C'est le récepteur que nous avons utilisé pour notre dossier pratique : Ajouter le bluetooth à son ordinateur.


Voir le bon plan
SSD Verbatim Vi550 S3 1 To à 47,86 € livré
47,86 65 € -26% @Amazon Allemagne

Amazon Allemagne fait une promotion sur le SSD Verbatim Vi550 S3 1 To qui passe à 43,26 €. Comptez 4,60 € pour la livraison en France soit un total de 47,86 € livrée. Ce SSD SATA III au format 2.5 pouces offre une vitesse en lecture de 520 Mo/ et en écriture de 500 Mo/s. Une bonne affaire pour booster un PC !


Voir le bon plan
Table pliante portable 180 cm à 39,99 €
39,99 € 59,99 € -33% @Cdiscount

Cdiscount fait une belle promotion sur la table pliante portable 180 cm qui passe à 39,99 € au lieu de 59,99 €. Dépanne bien pour les vides greniers, les pique-niques ou les repas de famille.


Voir le bon plan
Processeur AMD Ryzen 5 3600 à 92,97 €
92,97 € 120 € -23% @Amazon

Amazon fait une promotion sur le processeur AMD Ryzen 5 3600 qui passe à 92,97 € livré gratuitement au lieu de plus de 120 €. Le processeur AMD Ryzen 5 3600 Wraith Spire (3.6 GHz / 4.2 GHz) fait partie des premiers processeurs pour PC gravés en 7 nm. Ses 6 coeurs et 12 threads, une fréquence jusqu'à 4.2 GHz et 35 Mo de GameCache le rendent polyvalent, il vous permet de tout faire rapidement et en toute fluidité. 


Voir le bon plan
Enceinte bluetooth Anker Soundcore Motion Boom à 74,99 €
74,99 € 99,99 € -25% @Amazon

Amazon fait une promotion sur la très bonne enceinte bluetooth Anker Soundcore Motion Boom qui passe à 74,99 €. On la trouve ailleurs à partir de 99,99 €. La livraison est gratuite.

Cette enceinte offre un son Hi-Res 30W et supporte le bluetooth 5.0 et l'aptX. L'enceinte est étanche IPX7, flotte, possède une poignée et offre jusqu'à 24 heures d'autonomie. Rechargement via un port USB-C.


Voir le bon plan

Sujets relatifs
courriel avec lien vers site
Envoyer un fichier vers serveur du site
les site avec fichier .exe
Impossible de publier des liens vers mon site de Facebook
Transférer une adresse vers un autre site
Organigramme d'un site fait avec Dreamweaver
gestion site Free avec Filezilla
Supptession fichier parasie sur site distant
Redirection site A vers B ou A'
problème avec les caractères accentué dans mes liens
Plus de sujets relatifs à upload de fichier avec nom accentué vers un site
 > Tous les forums > Forum Forum des Webmasters