Problème avec un script d'upload en php

Fermé
Grechtouille Messages postés 2 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 29 mars 2007 - 29 mars 2007 à 11:23
desigfree Messages postés 2 Date d'inscription dimanche 25 février 2007 Statut Membre Dernière intervention 1 septembre 2007 - 29 mars 2007 à 12:01
Bonjour à tous. Voila, j'ai réalisé un site intranet et là, je dois réaliser une page télécharger qui permettra aux utilisateurs de choisir un document WORD EXCEL OU PDF à l'aide d'un bouton parcourir puis de l'ouvrir en cliquant sur envoyer.
Seulement au click d'envoyer, il ne se passe rien.
Voici mon code :
<?php
//connexion à la base de données
mysql_connect("localhost","root","");
//sélection de la base de données
mysql_select_db("SiteIntranet");

if(isset($_FILES['tf_nom']))
{
  // params
  unset($erreur);
  $extensions_ok = array('doc', 'xls', 'pdf');
  $taille_max = 100000;
  $dest_dossier = '/C:/EasyPHP1-8/www/';
  // vérifications
  if( !in_array( substr(strchr($_FILES['tf_nom'], '.'), 1), $extensions_ok ) )
  {
    $erreur = 'Veuillez sélectionner un fichier de type doc, xls ou pdf !';
  }
  elseif( file_exists($_FILES['tf_nom'])
          and filesize($_FILES['tf_taille']) > $taille_max)
  {
    $erreur = 'Votre fichier doit faire moins de 500Ko !';
  }
  // copie du fichier
  if(!isset($erreur))
  {
    $dest_fichier = SiteIntranet($_FILES['tf_nom']);
    // 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-1]+)/i', '_', $dest_fichier);
    // copie du fichier
    move_uploaded_file($_FILES['tf_nom'], $dest_dossier . $dest_fichier);
  }
}

?>
<html>
<body>
<!-- Erreur ? -->
<?php
if(isset($erreur)){
  echo '<p>', $erreur ,'</p>';
}
mysql_close();
?>
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le  enctype="multipart/form-data" -->
<form method="POST" action="30.php" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 500Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<p><label for="photo">Document :</label><input type="file" name="photo" /></p>
<p><label for="photo_2">Document 2 :</label><input type="file" name="photo_2" /></p>
<!-- bouton d'envoi -->
<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
</legend>
</fieldset>
</form>
</body>
</html>

Mon code n'est pas forcément génial puisque je m'en suis repartie de forums et tutos.
Merci d'avance pour votre aide.
A voir également:

1 réponse

desigfree Messages postés 2 Date d'inscription dimanche 25 février 2007 Statut Membre Dernière intervention 1 septembre 2007
29 mars 2007 à 12:01
salut !!
bien je vais vous données le plus simple et le plus efficasse :
voila

la fonction upload tu enregistre ce fichier sous le nom upload.php par exple:


<?
// Taille maximum
function upload($fname,$ftype,$fsize,$ftmp,$where)
{
		$MAX_FILE_SIZE = 100000000;
		// Dossier de destination du fichier
		$folder = "images/".$where; 
		//echo $folder;
		// Tableau array des différents types
		//$allowed_types = array("image/gif","image/jpg","image/pjpeg","image/x-png","image/png","application/msword");
		//echo "................".$ftype;
		// Diverses test afin de savoir si :
		// Le format de fichier correspond à notre tableau array
		//if(!in_array($ftype, $allowed_types)){$error = 1;}
		//else
		//{
			// La taille du fichier n'est pas dépassée
			if($fsize > $MAX_FILE_SIZE){$error = 2;}
			else
			{
				// Le fichier n'existe pas déjà
				if(file_exists($folder."m_".$fname)){$error = 3;}
				else
				{
					// Si tout va bien, c'est bien déroulé
					if(copy($ftmp,''.$folder.''.$fname.'')) {$error = 0;}
				}
			}
		//}
		// Switch servant simplement à la gestion des erreures
		switch($error){
		case'0':
		$erreur="";
		break;
		case'1':
		$erreur="Format de fichier incorrecte.";
		break;
		case'2':
		$erreur="Fichier trop volumineux.";
		break;
		case'3':
		$erreur="Fichier déjà existant.";
		break;
		}
		return $erreur;
}
?>














bien mainteant le formulaire fichier index.php par exple :


<?
// ici l'appel de la fonction d'appload voila comment faire

if($HTTP_POST_FILES['image']['name']!='')
		{
				
				/* uplod de l'image .....*/
				$fname = $HTTP_POST_FILES['image']['name'];
				$ftype = $HTTP_POST_FILES['image']['type'];
				$fsize = $HTTP_POST_FILES['image']['size'];
				$ftmp = $HTTP_POST_FILES['image']['tmp_name'];
                                // la tu va preciser le chemain d'enregistrement
				$where="images/";
				$erreur=upload($fname,$ftype,$fsize,$ftmp,$where);
				
		}

?>


<form action="index.php" method="post" name="lis" enctype="multipart/form-data" >
<table>
<tr><td>Image</td><td><input type="file" name="image"></td></tr>
<tr><td colspan="2" align="right"><input type="submit" value="Enregistrer"></td></tr>
</table>
0