Bonjour,
J'ai réalisé un formulaire d'édition qui reprend les valeurs d'une bdd et qui permet aussi d'uploader des fichiers.
en fait, quand je passe en mode édition je peux réuploader des fichiers et dans ce cas je renomme les anciens avec la date. (ce qui me permet d'archiver les fichiers et de ne pas les écraser).
j'ai 4 sortes de fichiers et j'ai un soucis pour l'upload des fichiers sons. en effet, mon code me permet de détecter si le fichier existe dans le répertoire spécifié.. S'il existe je copie l'ancien et le renomme dans le meme répertoire et j'uploade le nouveau avec le nom générique. (pour ça c'est ok!)
par contre si le fichier n'existe pas sur le serveur dans mon code je spécifie que je veux uploader mais sa ne fonctionne pas. je ne comprends vraiment pas d'ou vient le soucis.
voici le bout du formulaire avec l'input file :
le bout du code php qui devrait permettre d'uploader les fichiers sons(avec archivage)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <tr> <td><label for="fichierSON">Joindre Fichier Son </label> <div id="fichierSON_img"></div> </td> <td class="validated" id="fichierSON_li"><input name="fichierSON" type="file" id="fichierSON" onchange="verif_extensionSON(this.value);" /> <div id="fichierSON_msg"></div> </td> </tr>
alors je tiens à repréciser que le même code sur d'autre input file (autre type de fichier) fonctionne.
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
58
59
60
61 $SoundName_bak=""; if(!empty($_POST["SoundName_bak"])) $SoundName_bak=addslashes($_POST["SoundName_bak"]); if($_FILES['fichierSON']['size']>80000000) { $alerte = 'Votre fichier son dépasse la limite autorisée (80 Mo) !\n'; echo "<script type=\"text/javascript\">alert(\"$alerte\");</script>"; exit; } else { //on remplace les caractères spéciaux du nom du fichier par des caractères standards $search = array ('@[ËÊÈÉéèëê]@i','@[ÄÂÀÁäâàá]@i','@[ÏÎÌÍïîìí]@i','@[ÜÛÙÚüûùúµ]@i','@[ÖÔÒÓöôòó]@i','@[ç]@i','@[ñ]@i','@[ \'"]@i'); $replace = array ('e','a','i','u','o','c','n','_'); $_FILES['fichierSON']['name'] = preg_replace($search, $replace, $_FILES['fichierSON']['name']); $Statut_corpus=""; if(!empty($_POST["Statut_corpus"])) $Statut_corpus=addslashes($_POST["Statut_corpus"]); $NomFichierSource =""; if(!empty($_POST["NomFichierSource"])) $NomFichierSource =addslashes($_POST["NomFichierSource"]); $NomFichierSource = strtolower($NomFichierSource); $NomFichierSource = ucfirst($NomFichierSource); $rep = "../Corpus/$NomFichierSource/$Statut_corpus/"; //if(!is_dir($rep1))mkdir($rep1); if(!is_dir($rep))mkdir($rep); //si upload SON if($_FILES['fichierSON']['size']>0){ $NewNameSON = $_FILES['fichierSON']['name']; $fileSoundToUpload = $rep.$NewNameSON; $filenameSound_bak = "../Corpus/$NomFichierSource/$Statut_corpus/$SoundName_bak"; $filenameSound_new = "../Corpus/$NomFichierSource/$Statut_corpus/$today-$SoundName_bak"; //si le fichier existe if(file_exists($fileSoundToUpload)){ copy($filenameSound_bak, $filenameSound_new); $ValidationSON = (move_uploaded_file($_FILES['fichierSON']['tmp_name'],$fileSoundToUpload)); } //sinon on renomme l'ancien else{ rename($filenameSound_bak, $filenameSound_new); $ValidationSON = (move_uploaded_file($_FILES['fichierSON']['tmp_name'],$fileSoundToUpload)); //mise a jour nom fichier dans la table $sqlUpdSON = " UPDATE header_tei SET SoundName = '$NewNameSON' WHERE id_fiche = '$id_fiche' " ; $queryUpdSON = mysql_query($sqlUpdSON); } } }
pour celui la , il semble que lorsque le nom du fichier n'existe pas il ne l'upload pas. or j'ai bien précisé cela
merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 else{ rename($filenameSound_bak, $filenameSound_new); $ValidationSON = (move_uploaded_file($_FILES['fichierSON']['tmp_name'],$fileSoundToUpload)); //mise a jour nom fichier dans la table $sqlUpdSON = " UPDATE header_tei SET SoundName = '$NewNameSON' WHERE id_fiche = '$id_fiche' " ; $queryUpdSON = mysql_query($sqlUpdSON); }
Partager