begin process at 2012 05 27 20:46:58
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > UPLOADEUR DE FICHIERS MULTIPLES V1

UPLOADEUR DE FICHIERS MULTIPLES V1


 Information sur la source

Note :
Aucune note
Catégorie :Formulaires Classé sous :upload, image, multiple, securité, telecharger Niveau :Débutant Date de création :20/03/2011 Date de mise à jour :20/03/2011 20:56:51 Vu / téléchargé :4 495 / 423

Auteur : cod57

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
UPLOADEUR DE FICHIERS MULTIPLES

- choix des extensions dans un tableau
- contrôle des erreurs
- extensible, ajout de 'file' dans le formulaire par la variable $j
- quelques contrôles de sécurité et nettoyage
- adaptable à differents projets
- creation auto du repertoire upload
- ideal pour le téléchargement d'images vers une galerie

Source

  • <?php
  • $rep = 'upload';/* vous decider */
  • if (@file_exists($rep)){
  • }else{
  • @mkdir($rep, 0705);
  • }
  • /*reglages persos*/
  • $j=5; /*indiquer ici le nombre de input file, faut pas exagerer les copains ...*/
  • $size_max=250000; /*taille maxi du fichier*/
  • $extensions = array('.png', '.gif', '.jpg', '.jpeg'); /*ici des images*/
  • /*attention repercuter la liste dans le controle mine plus bas*/
  • if(isset($_FILES['ufile'])){
  • $c=count($_FILES['ufile']);
  • }else{
  • $c=0;
  • }
  • if(isset($_GET['del']) && !empty($_GET['del'])){
  • $file=(string)$_GET['del'];
  • if (@file_exists($rep.'/'.$file)){
  • @unlink($rep.'/'.$file);
  • $file=NULL;
  • unset($_GET);
  • }else{
  • }
  • }else{
  • }
  • if(isset($_POST['Sub']) && $_SERVER['REQUEST_METHOD']==="POST" ){
  • echo '<div align="center"><pre>';
  • echo '<a href="'.$_SERVER['PHP_SELF'].'">RETOUR AU FORMULAIRE</a><br />';
  • foreach($_FILES as $k => $v) {
  • $ti = 0 ;
  • while($ti<$j) {
  • $erreur="";
  • echo '<hr><font color="red"><h3>'.$ti.'</h3></font><br />';
  • if(empty($v['name'][$ti])){
  • $erreur .= ' VIDE <br />';
  • }else{
  • }
  • if(strlen($v['name'][$ti]) > 64 ){
  • $erreur .= ' Le nom est trop long <br />';
  • }else{
  • }
  • /*nettoyage nom*/
  • $v['name'][$ti] = strtr($v['name'][$ti],
  • 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
  • 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  • $v['name'][$ti]=strtolower($v['name'][$ti]); /* .JPG -> .jpg ...*/
  • $v['name'][$ti] = preg_replace('/([^.a-z0-9]+)/i', '-', $v['name'][$ti]);
  • /*CES LIGNES SI ON VEUT UN FICHIER UNIQUE A CHAQUE UPLOAD*/
  • /*JOUR - MOIS - ANNEE - HEURE - MINUTE - id - NOM*/
  • $dateur = date('m-d-Y-H-i-').uniqid(); /*cette ligne*/
  • if(isset($dateur)){
  • $v['name'][$ti] = $dateur.$v['name'][$ti];
  • }else{
  • }
  • /*SINON DEVALIDER CES LIGNES*/
  • /*fin nettoyage nom*/
  • //echo 'name : '.$v['name'][$ti].'<br />';
  • //echo 'type : '.$v['type'][$ti].'<br />';
  • //echo 'tmp : '.$v['tmp_name'][$ti].'<br />';
  • //echo 'error : '.$v['error'][$ti].'<br />';
  • //echo 'size : '.$v['size'][$ti].'<br />';
  • //On fait un tableau contenant les extensions autorisées.
  • //Comme il s'agit d'un avatar pour l'exemple, on ne prend que des extensions d'images.
  • //$extensions = array('.png', '.gif', '.jpg', '.jpeg'); /*ici des images*/
  • // récupère la partie de la chaine à partir du dernier . pour connaître l'extension.
  • $extension = strrchr($v['name'][$ti], '.');
  • //Ensuite on teste
  • if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
  • {
  • $erreur .= ' Vous devez uploader un fichier de type gif, jpg, jpeg<br />';//exit;
  • }
  • /*et si il fake ou spoof*/
  • $blacklist = array(".php", ".phtml", ".php3", ".php4",".exe",".bin",".zip",".js",".bat"); /*etc ...*/
  • foreach ($blacklist as $item) {
  • if(preg_match("/$item\$/i", $v['name'][$ti])) {
  • $erreur .= " EXTENSION DE FICHIER INTERDITE <br />";
  • //exit;
  • }
  • }
  • /*verifier le type mine autant de if, else if que de type*/
  • if($v['type'][$ti]==="image/pjpeg"){
  • //ok
  • }
  • else if($v['type'][$ti]==="image/gif"){
  • //ok
  • }
  • else{
  • $erreur .= $v['name'][$ti].' Verifier le format<br />';
  • $autorisation=false;
  • }
  • //Taille du fichier secu 2 par la function filesize
  • $taille = filesize($v['tmp_name'][$ti]);
  • if($taille>$size_max){
  • $erreur .= $v['name'][$ti].' FICHIER VRAIMENT TROP GROS<br />';
  • }else{
  • }
  • if($v['error'][$ti]===0){
  • echo $v['name'][$ti].' uploadable <br />';
  • }else{
  • $erreur .= $v['name'][$ti].' Non uploadable<br />';
  • $autorisation=false;
  • //echo $erreur.'\n';
  • }
  • if($v['size'][$ti]>$size_max){
  • $erreur .= $v['name'][$ti].' FICHIER TROP GROS<br />';
  • $autorisation=false;
  • } elseif($erreur===""){
  • /*pas d erreur on traite*/
  • $autorisation=true;
  • /*upload*/
  • $f=$v['tmp_name'][$ti];
  • $path="upload/".$v['name'][$ti];
  • if(isset($f) && !empty($f) && $autorisation==true){
  • copy($f,$path);
  • @unlink($f); /*on efface le tmp*/
  • echo '<h3><font color="green">Copie reussie</h3></font>'.$v['name'][$ti].'<br />';
  • if(file_exists($path)!=""){
  • echo "<p>";
  • echo "file name :".$v['name'][$ti]."<br/>";
  • echo "file size :".$v['size'][$ti]."<br/>";
  • echo "file type :".$v['type'][$ti]."<br/>";
  • echo "<img src=\"".$path."\" width=\"150\" height=\"150\">";
  • echo "</p>";
  • }else{
  • echo 'image1 ?<br />';
  • }
  • }else{
  • $autorisation=false;
  • $path="";
  • $f="";
  • }
  • }else{
  • }
  • echo '<font color="red">'.$erreur.'</font>';
  • /*image suivante*/
  • $ti++;
  • $autorisation=false; /*prochain $_FILES non autorisé*/
  • }/*fin du while*/
  • } /*fin du foreach*/
  • echo '</pre></div>';
  • exit;
  • }else{
  • $form = '<table width="500" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
  • <tr>
  • <form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  • <td>
  • <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFEEDD">
  • <tr>
  • <td><strong>Uploadeur Multiple</strong></td>
  • </tr>
  • ';
  • $i=0;
  • while($i<$j){
  • $form .='<tr>';
  • $form .= '<td>CHOISIR UN FICHIER '.($i+1).'
  • <input name="ufile[]" type="file" id="ufile[]" size="50" /></td>
  • </tr>';
  • $i++;
  • }
  • $form .= '<td align="center"><input type="submit" name="Sub" value="Upload" /></td>
  • </tr>
  • </table>
  • </td>
  • </form>
  • </tr>
  • </table>';
  • echo $form;
  • }
  • /*listage du repertoire */
  • echo '<div align="center">';
  • if ($handle = opendir($rep)) {
  • while (false !== ($file = readdir($handle))) {
  • if ($file != "." && $file != "..") {
  • //$extensions = array('.png', '.gif', '.jpg', '.jpeg'); /*ici des images*/
  • // récupère la partie de la chaine à partir du dernier . pour connaître l'extension.
  • $extension = strrchr($file, '.');
  • //Ensuite on teste
  • if(in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
  • {
  • echo $file.' : <a href="?del='.$file.'">Effacer</a> <a href="'.$rep.'/'.$file.'">Voir</a><br />';
  • }else{
  • /* les fichiers interdits */
  • }
  • }
  • }
  • closedir($handle);
  • }
  • echo '</div>';
  • ?>
<?php
$rep = 'upload';/* vous decider */
if (@file_exists($rep)){
}else{
@mkdir($rep, 0705);
}

/*reglages persos*/
$j=5; /*indiquer ici le nombre de input file, faut pas exagerer les copains ...*/
$size_max=250000; /*taille maxi du fichier*/
$extensions = array('.png', '.gif', '.jpg', '.jpeg'); /*ici des images*/
/*attention repercuter la liste dans le controle mine plus bas*/

if(isset($_FILES['ufile'])){
$c=count($_FILES['ufile']);
}else{
$c=0;
}


if(isset($_GET['del']) && !empty($_GET['del'])){

$file=(string)$_GET['del'];
    
    if (@file_exists($rep.'/'.$file)){
        
        @unlink($rep.'/'.$file);
        $file=NULL;
        unset($_GET);
        
    }else{
    }

}else{
}


if(isset($_POST['Sub']) && $_SERVER['REQUEST_METHOD']==="POST" ){

echo '<div align="center"><pre>';

    
    echo '<a href="'.$_SERVER['PHP_SELF'].'">RETOUR AU FORMULAIRE</a><br />';
    
    
    foreach($_FILES as $k => $v) {
           
           $ti = 0 ;
           
           while($ti<$j) {
           
           $erreur="";
           
           echo '<hr><font color="red"><h3>'.$ti.'</h3></font><br />';
           
           if(empty($v['name'][$ti])){
           $erreur .= ' VIDE <br />';
           }else{
           
           }
                              
           
           if(strlen($v['name'][$ti]) > 64 ){
           $erreur .= ' Le nom est trop long <br />';
           }else{
           }
           
           
          /*nettoyage nom*/
                  
          
          $v['name'][$ti] = strtr($v['name'][$ti],
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
          
          $v['name'][$ti]=strtolower($v['name'][$ti]); /* .JPG -> .jpg ...*/
                         
          
          $v['name'][$ti] = preg_replace('/([^.a-z0-9]+)/i', '-', $v['name'][$ti]);
          
          /*CES LIGNES SI ON VEUT UN FICHIER UNIQUE A CHAQUE UPLOAD*/
          /*JOUR - MOIS - ANNEE - HEURE - MINUTE - id - NOM*/
          
          $dateur = date('m-d-Y-H-i-').uniqid();  /*cette ligne*/
          if(isset($dateur)){
          $v['name'][$ti] = $dateur.$v['name'][$ti]; 
          }else{
          }
          /*SINON DEVALIDER CES LIGNES*/
                                         
          /*fin nettoyage nom*/ 
           
          
           //echo 'name : '.$v['name'][$ti].'<br />';
           //echo 'type : '.$v['type'][$ti].'<br />';
           //echo 'tmp : '.$v['tmp_name'][$ti].'<br />';
           //echo 'error : '.$v['error'][$ti].'<br />';
           //echo 'size : '.$v['size'][$ti].'<br />';
           
                     
           
           //On fait un tableau contenant les extensions autorisées.
           //Comme il s'agit d'un avatar pour l'exemple, on ne prend que des extensions d'images.
           //$extensions = array('.png', '.gif', '.jpg', '.jpeg'); /*ici des images*/
           // récupère la partie de la chaine à partir du dernier . pour connaître l'extension.
           $extension = strrchr($v['name'][$ti], '.');
           //Ensuite on teste
           if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
           {
           $erreur .= ' Vous devez uploader un fichier de type gif, jpg, jpeg<br />';//exit;
           }
           
           /*et si il fake ou spoof*/
           $blacklist = array(".php", ".phtml", ".php3", ".php4",".exe",".bin",".zip",".js",".bat");  /*etc ...*/
           foreach ($blacklist as $item) {
           if(preg_match("/$item\$/i", $v['name'][$ti])) {
           $erreur .= " EXTENSION DE FICHIER INTERDITE <br />";
           //exit;
           }
           }
           
           /*verifier le type mine autant de if, else if que de type*/
           if($v['type'][$ti]==="image/pjpeg"){
           //ok 
           }
           
           else if($v['type'][$ti]==="image/gif"){
           //ok
           }
           
           else{
           $erreur .= $v['name'][$ti].' Verifier le format<br />'; 
           $autorisation=false;
           }                                                                                                                                                                                                  
                                                  
           //Taille du fichier secu 2 par la function filesize
           $taille = filesize($v['tmp_name'][$ti]);
           if($taille>$size_max){
           $erreur .= $v['name'][$ti].' FICHIER VRAIMENT TROP GROS<br />';
           }else{
           }
           
           if($v['error'][$ti]===0){
           echo $v['name'][$ti].' uploadable <br />'; 
           }else{
           $erreur .= $v['name'][$ti].' Non uploadable<br />';
           $autorisation=false;
           //echo $erreur.'\n';
           }
           
               if($v['size'][$ti]>$size_max){
               
               $erreur .= $v['name'][$ti].' FICHIER TROP GROS<br />';
               $autorisation=false;
               
               } elseif($erreur===""){
               
               
               /*pas d erreur on traite*/    

                               
               $autorisation=true;
               
               /*upload*/
               
               $f=$v['tmp_name'][$ti];
               $path="upload/".$v['name'][$ti];
                                   
                   if(isset($f) && !empty($f) && $autorisation==true){
                   
                   copy($f,$path);
                   
                   @unlink($f); /*on efface le tmp*/
                   
                   echo '<h3><font color="green">Copie reussie</h3></font>'.$v['name'][$ti].'<br />';
                   
                   
                          if(file_exists($path)!=""){
                          
                          echo "<p>";
                          echo "file name :".$v['name'][$ti]."<br/>";
                          echo "file size :".$v['size'][$ti]."<br/>";
                          echo "file type :".$v['type'][$ti]."<br/>";
                          echo "<img src=\"".$path."\" width=\"150\" height=\"150\">";
                          echo "</p>";
                          
                          }else{
                          echo 'image1 ?<br />';
                          }
                                       
                   }else{
                   
                   $autorisation=false;
                   $path="";
                   $f="";
                   }
               
               }else{            
               
                                       
           
              
              
              }
              
           echo '<font color="red">'.$erreur.'</font>';   
           /*image suivante*/            
           
           $ti++;
           $autorisation=false; /*prochain $_FILES non autorisé*/ 
           
           }/*fin du while*/
  
     
  
  } /*fin du foreach*/

echo '</pre></div>';

exit;

}else{
$form = '<table width="500" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFEEDD">
<tr>
<td><strong>Uploadeur Multiple</strong></td>
</tr>
';
$i=0;
while($i<$j){
$form .='<tr>';
$form .= '<td>CHOISIR UN FICHIER '.($i+1).'  
<input name="ufile[]" type="file" id="ufile[]" size="50" /></td>
</tr>';
$i++;
}

$form .= '<td align="center"><input type="submit" name="Sub" value="Upload" /></td>
</tr>
</table>
</td>
</form>
</tr>
</table>';
echo $form;
}



/*listage du repertoire */

echo '<div align="center">';

if ($handle = opendir($rep)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            
            //$extensions = array('.png', '.gif', '.jpg', '.jpeg'); /*ici des images*/
            // récupère la partie de la chaine à partir du dernier . pour connaître l'extension.
            $extension = strrchr($file, '.');
           //Ensuite on teste
            if(in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
            {
           
            echo $file.' : <a href="?del='.$file.'">Effacer</a> <a href="'.$rep.'/'.$file.'">Voir</a><br />';
            
            
            }else{
            
            /* les fichiers interdits */ 
            
            }
            
        }
    }
    closedir($handle);
}
 
echo '</div>';
?>

 Conclusion

- bricoler en une aprés-midi
- j'aimerai partager des idées de sécurisation
- si on ajoute un systeme d'identification simple on a un petit gestionnaire
- on pourra facilement interfacer sur mysql si on ajoute des champs au formulaire ...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

20 mars 2011 20:42:59 :
ajout de la possibilité de supprimer listage suivant le tableau des extensions un lien retour au formulaire
20 mars 2011 20:53:41 :
- ajout du lien voir fichier
20 mars 2011 20:56:51 :
- ajout du zip

 Sources du même auteur

Source avec Zip Source avec une capture GENERATEUR DE BOUTONS DE PARTAGES POUR RESEAUX SOCIAUX
Source avec Zip Source avec une capture FORM TO MAIL AVEC PROTECTION PAR TOKEN ET CAPTCHA CONTRÔLES ...
Source avec Zip Source avec une capture MOTEUR DE RECHERCHE SUR BASE MYSQL FULLTEXT ET BOOLEAN AVEC ...
Source avec Zip Source avec une capture PAGINATION JAVASCRIPT PHP MYSQL
Source avec Zip Source avec une capture GESTIONNAIRE DE NEWS BASIQUE AVEC UPLOAD D'IMAGES

 Sources de la même categorie

Source avec Zip Source avec une capture VALIDATEUR DE FORMULAIRE par Reldan
Source avec Zip SUIVI SERVICE CLIENT PHP par hige52
Source avec Zip POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM par mtrix000
Source avec Zip Source avec une capture SELECTEUR DE NOTE par Reldan
Source avec Zip Source avec une capture ESPACE MEMBRE , AVEC CASE OPTIONNEL , SANS MYSQL par sartoz

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture GESTIONNAIRE DE NEWS BASIQUE AVEC UPLOAD D'IMAGES par cod57
UPLOAD IMAGE AVEC MINIATURE par dilar
Source avec Zip FONCTION PHP POUR REDIMENSIONNER UNE IMAGE ET UPLOADER DANS ... par GstJasmin
Source avec Zip Source avec une capture UTILISATION DU COMPOSANT MULTIPOWUPLOAD par crazygogo
Source avec Zip UPLOAD MULTIPLE IMAGE GIF/JPG/PNG AVEC ROTATION, MINIATURE G... par D1stort1on

Commentaires et avis

Commentaire de Morphinof le 29/03/2011 12:02:42

Tu t'embetes pour recuperer l'extention de ton fichier :

$ext = pathinfo($_FILES['fichier']['name'],  PATHINFO_EXTENSION); et hop ! :)
Ton script est une bonne base mais on peu l'améliorer :

Tu devrai vérifier les caractères du nom du fichier : if(preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $file)) si il contient un de ces caractères c'est plutôt mauvais signe ^^

Chaque fichier a un nom unique mais je pense que md5(uniqid('H', 5)); suffit pour avoir un nom assez unique.

Tu vérifie bien le type mime mais tu ne vérifie pas que l'extension concorde, c'est toujours une sécurité de plus.

Pour être encore plus sécurisé l'idéal serai de regarder le contenu du fichier mais ca deviens plus complexe du coup.

Voila ce qui me viens a l'esprit après je suis loin d'être bon en secu ^^

Commentaire de cod57 le 29/03/2011 13:46:45

@morphinof

Merci pour tes remarques elles sont à prendre en compte !
Oui en effet on peut ameliorer le script qui n'est qu'une base de travail

$ext = pathinfo($_FILES['fichier']['name'],  PATHINFO_EXTENSION);
interressant je peux alors comparer à $extension

comparer le mine avec l'extension
mine -> image/pjpeg  et  jpg ou jpeg?
ça me semble plus hasardeux peut etre penses tu as truc du genre
exemple :
$mine="image/pjpeg";
$mine=substr($mine,-4);
if($mine===$extension) ...

le nom unique là les méthodes ne manque pas chacun decide
md5(uniqid('H', 5)); oui je pense aussi que c'est mieux

\x00-\x1F\x7F-\x9F remarque judicieuse
http://phpcodeur.net/articles/php/upload
j'ai lu l'article aussi (-:

if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )
{
    exit("Nom de fichier non valide");
}
else if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
    exit("Impossible de copier le fichier dans $content_dir");
}

a++ bne prog

Commentaire de Morphinof le 29/03/2011 15:22:27

Pour l'extension je pensais en fait a un bête tableau associant l'extension du fichier avec son extension mime histoire de dire je reçois un .jpeg alors son extension mime est => image/pjpeg.

Oui c'est un article très intéressant j'ai beaucoup aime ^^

Ça serai bien que quelqu'un qui s'y donnai donne son avis, je suis curieux dans ce domaine :)

Commentaire de aspkiddy le 08/04/2011 18:40:09

Bonjour cod57,

Excellent code pour une application local...

je l'ai testé sur mon ordi, localement, sous Windows (localhost)

Ça marche...

par contre, j'ai changé la ligne 123 où il y a  le mime (type) de jpeg pour que ça marche avec JPG

Il fallait   écrire "image/jpeg" au lieu de "image/pjpeg"

voici le bon :  if($v['type'][$ti]==="image/jpeg"){


par contre, ton code ne marche pas lorsque le met sur un serveur externe (comme goDady) sous Windows (iis)

Voici le message d'erreur :

Warning:  copy(upload/04-08-2011-10-07-4d9f32b284398coul.gif) [function.copy]: failed to open stream: Permission denied in D:\Hosting\4568795\html\testr\ftp\index3.php on line 171

et le code de cette ligne est le suivant :

copy($f,$path);


alors, je l'ai mis sur un autre serveur externe sous Windows (iis)

quand je clique sur le bouton "Upload" Ça ne marche pas non plus :
Server Error
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.


Alors à mon avis, il faut ajouter aussi d'autres codes au niveau de droit d'écriture... Mais je ne sais pas ce qu'il faut écrire...

Bon courage

Commentaire de cod57 le 08/04/2011 20:57:42

bonsoir

j'ai retesté mon script sur ovh php 5 , free en php 5, en local wamp2(apache), easyphp, il tourne !

@Server Error
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.

oui sans doute le repertoire ... 'chmod' et une commande unix pas 'windows' faudrait
changé les droits sous le serveur iis
soit le fichier est copié mais injoignable soit il l'est pas present du tout.
tu devrais ecrire ce fichier à la main (creer un repertoire upload).

@mkdir($rep, 0705); marche pas sous windows

copy ? bon peut toujours essayer
is_uploaded_file
move_uploaded_file
mais je crois pas que ce soit ça

le type mine
c'est image/pjpeg sous ie
et image/jpeg pour chrome firefox (va savoir pourquoi)
donc il suffit de remplacer
if($v['type'][$ti]==="image/pjpeg"){
par
if($v['type'][$ti]==="image/pjpeg" or $v['type'][$ti]==="image/jpeg"){

a++

Commentaire de aspkiddy le 11/04/2011 18:23:23

Super COD57,

J'ai fait comme tu dis : j'ai créée le répertoire "upload" et j'ai redefini les droits sur ce répertoire... Alors Ça marche sans erreur...

Merci pour les explication sur pypeg et jpeg...

Bonne journée

Commentaire de begueradj le 24/04/2011 14:08:10

J'ai une question bête car je suis bête:

Pourquoi le fait qu'un noùm de fichiers contienne des caractères '#[\x00-\x1F\x7F-\x9F/\\\\]#' est un mauvais signe ?

Commentaire de cod57 le 24/04/2011 14:36:24

BONJOUR

la réponse est là
http://phpcodeur.net/articles/php/upload
il faut eviter de faire injecter un shell par une image detournée

on peut pousser la protection du repertoire upload par un .htaccess sur un serveur apache

.htaccess

Options -Indexes
Options -ExecCGI
AddHandler cgi-script .php .php3 .php4 .phtml .pl .py .jsp .asp .htm .shtml .sh .cgi
#Disabling executing of these files
#could give us an extra layer of protection.
#Further if you are allowing your users only photos
#or picturer, you can restrict other files by placing
#the following code your your .htaccess file.
<Files ^(*.jpeg|*.jpg|*.png|*.gif)>
order deny,allow
deny from all
</Files>

a++

Commentaire de begueradj le 24/04/2011 15:48:27

merci beaucoup pour votre réponse Cod75

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

upload dans table [ par eax ] salut!je voudrais savoir s'il est possible d'uploader un fichier (une image par exemple) et le stocker dans un champ d'une base de données mysqlje vou Upload d'Image et resize de cette image [ par 4feeling ] je cherche un petit bout de script qui permettrai d'uploader une image jpeg et l'enregistrer dans une taille précise. Par exemple on uploade, et on en Upload image et limitation taille [ par millo ] Je suis entrain de dévellopé un script ou je propose l'upload de photo mais pour des raisons évidentes je souhaite limiter l'espace disque réservé pou Probleme code de securité [ par zzzzzz ] Voila je suis debutant en php et j'ai inclue un fichier code.php avec comme contenu: header("Content-type: image/jpeg"); $nbr = rand(10000,100000); upload d'images [ par G_ki_aime_pas_le_php ] Salut à tous!G un petit problème j'essaie d'uploader un fichier et ça fonctionne pas.G TOUT essayé j'en ai marre!Est ce que quelqu'un aurait la soluti upload d'image [ par guikiki ] Bonjour à tous!!!voilà..encore un problème que je n'ai toujours pas réussit à résoudre et ce n'est pas faute d'essayer!!voilà, j'ai fait une page en i afficher les image d'un repertoir et un sous repertoir + upload [ par angelx ] bonjour je voudrais afficher les image d'un reperoire et SOUS Repertoire + faire un uploade sans donner le chemin de l'image en utilisant les image ge Prob Upload d'image... [ par zzzzzz ] yepj'ai un formulaire qui envoie une image cela marche parfaitement. Mais dans la partie vérification (les conditions marchent parfaitement) l'image n upload +insert bdd :( [ par ksinteractive ] bonjour et merci d'avance :)jai fais une petite admin avec insertion d'une fiche avec le nom du modele et un champ upload pour uploader une image qui Upload image .. j'ai cherché mais je ne comprends pas .. :S [ par Hash2o ] Voila, je suis a la recherche d'une solution pour uploader une image sur un serv. J'ai essayé la plus part des solutions proposer sur le site mais je


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales