IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] Upload fichier et archivage


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Points : 93
    Points
    93
    Par défaut [Upload] Upload fichier et archivage
    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 :
    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>
    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
    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);
     
     
    				}
    			}
    }
    alors je tiens à repréciser que le même code sur d'autre input file (autre type de fichier) fonctionne.
    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
    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);
     
     
    				}
    merci de votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Points : 93
    Points
    93
    Par défaut
    en fait apres avoir fait pas mal de teste le code n'est pas la cause de ce bug.
    en effet, en changeant le fichier j'ai vu que ça fonctionnait.

    c'est le fichier en lui même qui n'est pas accepté pour l'upload.

    je ne sais pas pourquoi ..; à suivre

Discussions similaires

  1. [Upload] upload de fichier
    Par pimpmyride dans le forum Langage
    Réponses: 5
    Dernier message: 23/02/2006, 22h52
  2. [Upload] Upload de fichier
    Par BenoitDenis dans le forum Langage
    Réponses: 4
    Dernier message: 22/02/2006, 12h02
  3. [Upload] Upload de fichiers
    Par margagn dans le forum Langage
    Réponses: 2
    Dernier message: 05/01/2006, 20h56
  4. [Upload] Upload de fichiers : sécurité
    Par genova dans le forum Langage
    Réponses: 16
    Dernier message: 04/01/2006, 21h22
  5. [Upload] upload de fichier images
    Par omlip dans le forum Langage
    Réponses: 2
    Dernier message: 03/01/2006, 23h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo