Bonjour,
j'ai un souci avec mon code, voila la reponse a ma requete.... (il né pas fini je le test par bout et la j'ai une erreur...)
Ca marche pour mes 2 1er chois (multiformulaire : anafi et mathi)
mais pr mon 3 eme choix, fait expres avec des accents et guillemets simple ca marche pas... pourtant mon repertoire existe...
ma question pourrait etre alors celle ci : est ce que ma variable de destination, etant donnée qu'elle contient des guillemets ou accents ne marche pas a cause de cela, ou des espaces ?? ?
Merci pour votre aide


Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Warning: move_uploaded_file(upload/Financement de l\'entreprise et économie/essai.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in D:\www\mag2\upload.php on line 48

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'c:/wamp/tmp\php2B.tmp' to 'upload/Financement de l\'entreprise et économie/essai.txt' in D:\www\mag2\upload.php on line 48
Echec de l'upload !

Voila mes fichiers:
index.html

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<!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=iso-8859-1" />
<title>Document sans nom</title>
</head>
 
<body>
 
<form method="POST" action="upload.php" enctype="multipart/form-data">
     <p>
     <!-- On limite le fichier à 100Ko -->
     <input type="hidden" name="MAX_FILE_SIZE" value="100000">
  </p>
  <table width="695" border="1">
    <tr>
      <td width="166" height="31">Fichier :</td>
      <td width="258"><input type="file" name="avatar" /></td>
      <td width="153">&nbsp;</td>
      <td width="90">&nbsp;</td>
    </tr>
    <tr>
      <td>Description : </td>
      <td><input name="desc" type="text" value="" /></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>Mati&egrave;re : </td>
      <td><select name="mon_champ">
        <option>Anafi</option>
        <option>Matfi</option>
        <option>Financement de l'entreprise et économie</option>
    </select>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="envoyer" value="Envoyer le fichier" /></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </table>  
<p>&nbsp;</p></td>  </form>
</body>
</html>
et upload.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
 
$mon_champ = isset($_POST['mon_champ']) ? $_POST['mon_champ'] : '';      //type de cours pour selection du fichier
$desc = isset($_POST['desc']) ? $_POST['desc'] : '';                     //description du fichier
 
 
$dossier = "upload/".$mon_champ."/";
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.txt', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.'); 
 
//début enregistrement dans la base de donnée
 
$chemin = "upload/".$mon_champ."/".$fichier;          //chemin complet de stockage de du chemin du fichier..
 
//ici je mettrais la requete sql complete pr l'enregistrement dans la base de $desc (description du cours) $mon_champ (type de matiere)  $chemin (chemin stockage cours)
 
 
 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
		  echo $mon_champ;
		  echo $desc;
		  echo $chemin;
		  echo "<a href='$chemin'>télécharger</a><br> ";         //voila comment récuperer le lien !! j'ai compris, ca va aller alors !
 
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
 
     }
}
else
{
     echo $erreur;
}
?>