Script d'upload de fichier, besoin d'aide

DekyGamer -  
avion-f16 Messages postés 20367 Statut Contributeur -
Bonjour,


J'essaye de créer un hébergeur de fichiers, les deux seuls problème; c'est:
-J'aimerai que les visiteurs puissent uploader des fichiers en .part.rar ou part.zip
-J'aimerai que les nom de fichiers uploadés (par exemple) Creek.jpg (image par défaut de Windows vista) ne soient pas changés par des numéros mais pas creek.jpg ou si l'image y est déjà par creek1.jpg (ou creek2...)

Merci

PS: Voici mon code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Biograph Web Design, Free CSS Template</title>
<meta name="keywords" content="Biograph Web Design, Free CSS Template CSS, HTML" />
<meta name="description" content="Biograph Web Design is a Free CSS Template provided by templatemo.com" />
<link href="templatemo_style.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript">
function clearText(field)
{
    if (field.defaultValue == field.value) field.value = '';
    else if (field.value == '') field.value = field.defaultValue;
}
</script>
</head>
<body>
<div id="templatemo_wrapper">
	<div id="templatemo_menu">
        <ul>
            <li><a href="index.php" class="current">Acceuil</a></li>
			<li><a href="membres/connexion.php">Membres</a></li>
		</ul>
    </div><!-- end of templatemo_menu -->
    
    <div id="templatemo_header">

        <div id="site_title">
                <img src="images/templatemo_logo.png" alt="Free CSS Template" />
        </div> <!-- end of site_title -->
    
    </div> <!-- end of templatemo_header -->
    
    <div id="templatemo_content_wrapper_outter">
    	
        <div id="templatemo_content_wrapper">
        
        	<div class="content_section">
<div class="content_texte">				
<?php
$poids_max = 5120000; // Poids max de l'image en octets (1Ko = 1024 octets)
$repertoire = 'uploads/'; // Repertoire d'upload
if (isset($_FILES['fichier']))
{
   
// On vérifit le type du fichier
if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif' && $_FILES['fichier']['type'] != 'image/bmp' && $_FILES['fichier']['type'] != 'image/x-icon' && $_FILES['fichier']['type'] != 'image/psd' && $_FILES['fichier']['type'] != 'application/octet-stream' && $_FILES['fichier']['type'] != 'image/tif' && $_FILES['fichier']['type'] != 'image/tiff') {
$erreur = 'Le fichier doit être au format *.jpeg, *.gif, *.png, *.bmp, *.ico, *jpg, *.psd, *.tif, *.tiff (on a reçu : '. $_FILES['fichier']['type'].')';
} 
   
   // On vérifit le poids de l'image
   elseif ($_FILES['fichier']['size'] > $poids_max)
   {
      $erreur = 'L\'image doit être inférieur à ' . $poids_max/5000 . 'Ko.';
   }
   
   // On vérifit si le répertoire d'upload existe
   elseif (!file_exists($repertoire))
   {
      $erreur = 'Erreur, le dossier d\'upload n\'existe pas.';     
   }
   
   // Si il y a une erreur on l'affiche sinon on peut uploader
   if(isset($erreur))
   {
      echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>';
   }
    else
   {
         
      // On définit l'extention du fichier puis on le nomme par le timestamp actuel
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; }
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; }
if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; }
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; }
if ($_FILES['fichier']['type'] == 'image/bmp') { $extention = '.bmp'; }
if ($_FILES['fichier']['type'] == 'image/x-icon') { $extention = '.ico'; }
if ($_FILES['fichier']['type'] == 'image/psd') { $extention = '.psd'; }
if ($_FILES['fichier']['type'] == 'application/octet-stream') { $extention = '.psd'; }
if ($_FILES['fichier']['type'] == 'image/tif') { $extention = '.tif'; }
if ($_FILES['fichier']['type'] == 'image/tiff') { $extention = '.tif'; }
if ($_FILES['fichier']['type'] == 'image/tif') { $extention = '.tiff'; } 
if ($_FILES['fichier']['type'] == 'image/tiff') { $extention = '.tiff'; } 

 // On upload le fichier sur le serveur.
      if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
      {
         $url = 'http://monsite.com/'.$repertoire.''.$nom_fichier.'';
         echo 'Votre fichier à été uploadé sur le serveur avec succes!<br>Voici le lien:<br><input type="text" value="' . $url . '" size="60"><br>Si c\'est une image, pour la sur un forum, utilisez:<br><input type="text" value="[img]Lien de l\'image/img" size="60"><br>Si c\'est une image : pour la mettre sur votre site, utilisez:<br><input type="text" value="<img src=Lien de votre image>" size="60">';
      }
      else
      {
         echo 'Le fichier n\'a pas pu être uploadé sur le serveur.';
      }
     
   }
   
}
else
{
   ?>
            
            	<h2>Uploader</h2>
            <div class="content_texte">Taille max d'un fichier: 5 Mo<br>
									   'Le fichier doit être au format *.jpeg, *.gif, *.png, *.bmp, *.ico, *jpg, *.psd, *.tif, *.tiff <br>
									   
<br><form method="post" enctype="multipart/form-data">
      <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $poids_max; ?>">
      <input type="file" name="fichier">
      <input type="submit" value="Envoyer">
   </form>
   <?php
}
?></div>
                
                <div class="cleaner"></div>

            </div>
            
            <div class="h_divider"></div>
            
            <div class=" cleaner_h40"></div>
            
            <div class="content_section">
            
            	<div class="content_texte">
                
                	<h2>Quels sont les avantages des membres ?</h2>
                	
                  
                  <ul class="service">
                   	  <li>Extensions de fichiers: *.jpeg, *.gif, *.png, *.bmp, *.ico, *.zip, *.exe, *.txt, *.doc, *.docx, *.rar, *.wmv ou *.flv</li>
                      <li>Peut uploader des fichiers de 15 Mo maxi !</li>
                  </ul>
                </div>
                
                <div class="cleaner"></div>

            </div>
            
            <div class="cleaner"></div>
        </div> <!-- end of templatemo_content_wrapper -->
    
    	<div class="cleaner">&nbsp;</div>
    </div> <!-- templatemo_content_wrapper_outter -->
    
    <div id="templatemo_footer">
    	 Copyright &copy 2048 <a href="#">Your Company Name</a> | 
         Designed by <a href="https://templatemo.com" target="_parent">Free CSS Templates</a> | 
         Validate <a href="http://validator.w3.org/check?uri=referer">XHTML</a> &amp; <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a>    
    </div> <!-- end of templatemo_footer -->

</div> <!-- end of templatemo_wrapper -->
</body>
</html>

A voir également:

1 réponse

avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Je te conseil de stocker les informations à propos des fichiers dans une table SQL et de nommer tes fichiers avec la valeur de leur id dans la table.
Dans cette table, tu peux y stocker d'autres informations comme la date d'envois, le poids, l'extension, l'utilisateur, ...
0