j'ai un ti probleme lorsque j'upload un fichier comportant dans son nom un accent ou espace, et bien ca foire a l'affichage.
J'ai pas trouvé de script remede
merci
<?php
// je remonte la déclaration avant la récup du fichier
$nomFichier = ""; // déclaration des variables
$chemin = "";
//Script Upload
//on vérifies que le champ est bien rempli:
if(isset($_FILES["photo"]["name"])) {
$nomFichier = $_FILES["photo"]["name"] ; //nom du fichier choisi:
$nomTemporaire = $_FILES["photo"]["tmp_name"] ; //nom temporaire sur le serveur:
$typeFichier = $_FILES["photo"]["type"] ; //type du fichier choisi:
$poidsFichier = $_FILES["photo"]["size"] ; //poids en octets du fichier choisit:
$codeErreur = $_FILES["photo"]["error"] ; //code de l'erreur si jamais il y en a une:
//chemin qui mène au dossier qui va contenir les fichiers upload:
$chemin = "./images/" ;
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'PNG', 'GIF', 'JPG', 'JPEG');
$taille_max = 100000;
// vérifications
if(($_FILES['photo']['name'] != "")&&( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) ) )
{
$erreur = 'Selectionna un archivo de tipo png, gif, jpg o jpeg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Su archivo no puede tener un peso superior a 100Ko !';
}
// derniere verif
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
//l'upload !
move_uploaded_file($nomTemporaire, $chemin.$nomFichier);
}
}
?>
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
//l'upload !
move_uploaded_file($nomTemporaire, $chemin.$nomFichier);
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
//l'upload !
move_uploaded_file($nomTemporaire, $chemin.$dest_fichier);
les fichiers avec accents passent et donc ne sont pas affichable. $nomFichier = $_FILES["photo"]["name"] ; //nom du fichier choisi:
ca marche pas non plus
<?php
// je remonte la déclaration avant la récup du fichier
$nomFichier = ""; // déclaration des variables
$chemin = "";
//Script Upload
//on vérifies que le champ est bien rempli:
if(isset($_FILES["photo"]["name"])) {
$nomFichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$nomFichier = strtr($nomFichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$nomFichier = preg_replace('/([^.a-z0-9]+)/i', '_', $nomFichier);
$nomTemporaire = $_FILES["photo"]["tmp_name"] ; //nom temporaire sur le serveur:
$typeFichier = $_FILES["photo"]["type"] ; //type du fichier choisi:
$poidsFichier = $_FILES["photo"]["size"] ; //poids en octets du fichier choisit:
$codeErreur = $_FILES["photo"]["error"] ; //code de l'erreur si jamais il y en a une:
//chemin qui mène au dossier qui va contenir les fichiers upload:
$chemin = "./images/" ;
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'PNG', 'GIF', 'JPG', 'JPEG');
$taille_max = 100000;
// vérifications
if(($_FILES['photo']['name'] != "")&&( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) ) )
{
$erreur = 'Selectionna un archivo de tipo png, gif, jpg o jpeg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Su archivo no puede tener un peso superior a 100Ko !';
}
//l'upload !
if(!isset($erreur)) {
move_uploaded_file($nomTemporaire, $chemin.$nomFichier);
}
}
?>
if(!empty($_FILES["photo"]["name"])) {
$nomFichier = $_FILES["photo"]["name"] ; // renseignement des variables
$chemin = "./images/" ;
qui se trouvait au dessus de l'insertion dans la base, et tout a l'air de fonctionner !