Upload image avec un nouveau script

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Upload image avec un nouveau script

par Ryle » 22 nov. 2008, 15:22

Je vois pas bien l'intérêt de chiffrer le nom d'un fichier à coup de md5, mais bon passons.. Le nom du fichier, c'est toi qui le donne au moment du move_upload_file(), sous forme d'une chaine.

Tu peux donc bien lui donner ce que tu veux comme nom, et je vois pas bien où est ton problème, outre le fait que "time" et "uniqid" ne sont pas des constantes, mais des fonctions (time() & uniqid()) et que uniqid prend un I de plus que ce que tu as écrit ;)

Après, faut pas non plus l'utiliser sur le nom du fichier avant de tester son extension, parce que forcément, une fois le nom chiffré, l'extension va être plus difficile à reconnaitre :)

Upload image avec un nouveau script

par DarkSulfura » 20 nov. 2008, 17:49

Bonjour,

Il y a très longtemps sur ce forum j'avais demandé qu'ont m'aide au sujet d'un script upload pour crypté les fichiers en md5 mais depuis ce temps j'ai changé de script mais je n'arrive pas à intégrer le code du md5 dans mon script.

Code md5 :
name_file = md5(time));
ou
name_file = md5(unqid));

et voici mon script :
<?php
// adresse de votre site internet (ex: http://www.monsite.org) et le dossier upload
$adresse	=	'http://127.0.0.1';
$upd		=	'/upload/';
// 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/';
  // ajouter ici les autres extensions que vous autorisé
  $extensions=array('jpg','jpeg','gif','png','mp3');

  // est ce qu'un fichier a ete selectionné ?
  if(empty($_FILES['fichier']['name'])){
    exit("Aucun fichier s&eacute;lectionn&eacute;.");
  }
  
  // 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('#[/?*;]#', $name_file)){
    exit("Caract&egrave;res invalides d&eacute;tect&eacute;");
  }
  
  // est ce que l'extension est valide ?
  if(!in_array(getExtension($name_file),$extensions)) {
    exit("Le format de votre fichier n'est pas autoris&eacute;.");
  }

  // upload
  if(!move_uploaded_file($tmp_file,$content_dir.$name_file)){
    exit("Impossible de copier le fichier !");
  }else{
    echo "Le fichier a bien &eacute;t&eacute; upload&eacute;";
  }
  
}
?>
Donc merci de votre aide ;)