> 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.

Publicité
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
28,04 €Support écran PC / TV pivotant sur pied (26 à 55 pouces, max 45 kg) à 28,04 €
Valable jusqu'au 07 Août

Amazon propose actuellement le support écran PC / TV pivotant sur pied Bontec à 28,04 € seulement grâce à un coupon de réduction à activer sur la page du produit. Ce support est adapté aux écrans plats de 26 à 55 pouces LED, LCD et PLASMA à compatibilité VESA de 100x100 jusqu'à 400x400.  Il supporte jusqu'à 45Kg, est régable en hauteur et cache les câbles disgracieux à l'arrière. Vous pouvez le mettre par exemple sur un meuble pour surélever votre TV ou votre PC (et mettre une enceinte dessous ?) sans avoir besoin de percer le mur.


> Voir l'offre
59,99 €Carte mémoire microSDXC UHS-I Lexar 633x 512 Go à 59,99 €
Valable jusqu'au 05 Août

Amazon fait une promotion sur la carte mémoire microSDHC UHS-I Lexar 633x 512 Go qui passe à 59,99 € au lieu de 80 €. Cette carte mémoire offre des vitesses jusqu'à 100 Mo/s et est idéale pour les téléphones, caméras et appareils photo HD. Elle est certifiée GoPro et est accompagnée d'un adaptateur SD. La livraison est gratuite.


> Voir l'offre
43,46 €SSD Crucial BX500 480 Go à 43,46 € livré
Valable jusqu'au 05 Août

Amazon Espagne propose actuellement le nouveau SSD Crucial BX500 480 Go à 38,88 € (avec la TVA ajustée). Comptez 4,58 € pour la livraison en France, soit un total de 43,46 € livré alors qu'on le trouve ailleurs à plus de 55 €. Ce SSD offre des débits de 540 Mo/s en lecture et 500 Mo/s en écriture. Le SSD est accompagné du logiciel Acronis true image qui vous permettra de transférer tout le contenu de votre ancien disque dur sur le SSD. Il est garanti 3 ans. 

Vous pouvez utiliser votre compte Amazon France sur Amazon Espagne et il n'y a pas de frais de douane.


> Voir l'offre

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