> Retour
<form method="post" enctype="multipart/form-data" action="">
<input type="file" name="fichier" size="30">
<input type="submit" name="upload" value="Uploader">
</form>
<?php
if( isset($_POST['upload']) ){
$content_dir = 'upload/';
$tmp_file = $_FILES['fichier']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
//vous pouvez vérifier l'extension du fichier ici.
$name_file = $_FILES['fichier']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
echo "Le fichier a bien été uploadé";
}
?>
<form method="post" enctype="multipart/form-data" action="">
<input type="file" name="fichier" size="30">
<input type="submit" name="upload" value="Uploader">
</form>
<?php
// fonction qui recupere l'extension du fichier
function getExtension($filename){
$ext = substr(strtolower(strrchr(basename($filename), ".")), 1);
return $ext;
}
// fonction qui va sécurisé le nom du fichier
function clean_file_name($var){
$var = strtr($var,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËéèêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
$var = eregi_replace("[^a-zA-Z0-9.-]","",$var);
return $var;
}
if($_POST['upload'])
{
// configuration :
// repertoire où vont être placé les fichiers
$content_dir = $_SERVER['DOCUMENT_ROOT'].'/upload_dir/';
// ajouter ici les autres extensions que vous autorisé
$extensions=array('jpg','jpeg','gif','png');
// est ce qu'un fichier a ete selectionné ?
if(empty($_FILES['fichier']['name'])){
exit("Aucun fichier sélectionné.");
}
// on test si le fichier est uploadé
$tmp_file = $_FILES['fichier']['tmp_name'];
if( !is_uploaded_file($tmp_file) ){
exit("Le fichier est introuvable");
}
// renommons le fichier pour plus de sécurité
$name_file = clean_file_name($_FILES['fichier']['name']);
// on test les caracteres non valide
if(preg_match('#[x00-x1Fx7F-x9F/]#', $name_file)){
exit("Caractères invalides détecté");
}
// est ce que l'extension est valide ?
if(!in_array(getExtension($name_file),$extensions)) {
exit("Le format de votre fichier n'est pas autorisé.");
}
// upload
if(!move_uploaded_file($tmp_file,$content_dir.$name_file)){
exit("Impossible de copier le fichier !");
}else{
echo "Le fichier a bien été uploadé";
}
}
?>
<?php
function safer_file_name($var)
{
//plus d'accent
$var = htmlentities($var, ENT_NOQUOTES, 'iso-8859-1'); // si votre site est en utf-8, faut changer l'encodage)
$var = preg_replace('#\&([A-za-z])(?:uml|circ|tilde|acute|grave|cedil|ring)\;#', '\1', $var);
$var = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $var);
$var = preg_replace('#\&[^;]+\;#','', $var);
// on enlève apostrophe / espace
$var = strtolower($var);
$var = str_replace("'","-",$var);
$var = str_replace("\"","-",$var);
$var = str_replace(" ","-",$var);
// on enlève le reste
$var = preg_replace('#[^a-z0-9\.-]#','', $var);
return $var;
}
function upload($_files, $destination_rep)
{
if(!empty($_files['fichier']['tmp_name']) && !empty($_files['fichier']['name']))
{
$tmp_file = $_files['fichier']['tmp_name'];
//on test si l'upload a reussi
if(!is_uploaded_file($tmp_file))
exit('Erreur lors de l\'upload.');
// on va ajouter une chaine pour rendre le nom du fichier unique et pratiquement introuvable.
$unikifier = md5(uniqid('A', 5));
// nettoyage du nom du fichier (on peux pas d'accents ou d'espace)
$file_name = safer_file_name($_files['fichier']['name']);
// on y ajoute la chaine pour rendre le nom de fichier unique
$file_name = $unikifier.'_'.$file_name;
//on déplace le fichier vers notre répertoire de destination
if(!move_uploaded_file($tmp_file, $destination_rep.$file_name))
exit("Impossible de déplacer le fichier. Upload annulé.");
else
return $file_name;
}
}
$file_dir = './upload_dir/';
if($_POST || $_FILES)
{
$file = upload($_FILES, $file_dir);
echo 'Upload terminé : '.$file;
}
else
{
echo '
<form method="post" enctype="multipart/form-data" action="">
<input type="file" name="fichier" size="30">
<input type="submit" name="upload" value="Uploader">
</form>';
}
?>
Le 16/03/2010 par Sky
http://www.graphiks.net
Nous - Plan du site - Informations légale - Contact - © Graphiks.net