Formulaire pour Uploader

Résolu
LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   -  
LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je souhaiterai pouvoir uploader un fichier avec lequel je met la fonction Time() pour renommer les fichiers. Dans ma BDD l'INSERT se fait bien mais le fichier ne s'enregistre pas dans mon dossier que j'ai créé à cet effet. Pouvez-vous m'aider s'ils vous plait. Je vous remercie.
<?php
$index = 2;  
require("libs/init.php");
$debug = 0;

$action 	= 'new';
$a 			= !empty($_GET['a']) ? $_GET['a'] : NULL;
$submit 	= !empty($_POST['submit']) ? $_POST['submit'] : NULL;
$haction 	= !empty($_POST['haction']) ? $_POST['haction'] : NULL;

$idart 		= !empty($_REQUEST['idart']) ? $_REQUEST['idart'] : NULL;
$lieuart 	= !empty($_POST['lieuart']) ? addslashes($_POST['lieuart']) : '';
$dateart 	= !empty($_POST['dateart']) ? dw2m($_POST['dateart']) : '';
$descart 	= !empty($_POST['descart']) ? $_POST['descart'] : '';
$files 		= !empty($_FILES['article']) ? $_FILES['article'] : NULL;
$fileName 	= !empty($files['name']) ? $files['name'] : NULL;
$fileTemp 	= !empty($files['tmp_name']) ? $files['tmp_name'] : NULL;

switch($a) {
	case 'new': $action = 'new';  break; 
	case 'ls' : $action = 'list'; break;
	default   : $action = 'new';  break; 
}

if($submit) {

	switch($haction) {
		case 'new':
			$dossier = 'presse/';
			$extension_valide = array( 'pdf' );
			$extension_upload = strtolower(  substr(  strrchr($fileName, '.')  ,1)  );
			$file_new = time();
			$file_dest = $dossier.$file_new;
			$file_upload = move_uploaded_file($fileTemp, $file_dest);				

			if (in_array($extension_upload,$extension_valide) ) {
				if ($file_upload) { 

			$sql = "INSERT INTO cdc_articles (article, lieuart, dateart, descart) VALUES (:article, :lieuart, :dateart, :descart)";
			$datas = array('article' => $file_new, 'lieuart' => $lieuart, 'dateart' => $dateart, 'descart' => $descart);
			$result = executeQuery($sql,$datas);
			$typenr = "enregistré";
			$reqaj = $requete; 
			$success = "<span class='success'>Le nouvelle article du - ".dFR("$dateart")." - a été $typenr.</span>";
				}
			} else {
				$erreur = "<span class='erreur'>Vous devez ajouter un fichier de type PDF</span>";				
			}
			break;
	}
}

switch($action) {
	case 'new':   
		$title      = "Saisie d'un Article";
		$btsub      = "Enregistrer";
		$idart     	= "";
		$article   	= "";
		$lieuart   	= "";
		$dateart  	= "";
		$descart  	= "";
		break;

	case 'list': 
		$title  	= "Liste des Articles";
		break;
}
?>

Et voici mon input de type file
echo '<td class="data"><input type="file" name="article" size="25" value="'.$fileName.'" class="oblig" /></td>';

2 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Commence par vérifier les droits sur le dossier de destination
    puis vérifie si l'upload a fonctionné
    if (is_dir($dossier) && is_writable($dossier)) {
       if( move_uploaded_file($fileTemp, $file_dest) ){
         if (in_array($extension_upload,$extension_valide) ) {
    		$sql = "INSERT INTO cdc_articles (article, lieuart, dateart, descart) VALUES (:article, :lieuart, :dateart, :descart)";
    		$datas = array('article' => $file_new, 'lieuart' => $lieuart, 'dateart' => $dateart, 'descart' => $descart);
    		$result = executeQuery($sql,$datas);
    		$success = "<span class='success'>Le nouvelle article du - ".dFR("$dateart")." - a été enregistré.</span>";
    	} else {
    		$erreur = "<span class='erreur'>Vous devez ajouter un fichier de type PDF</span>";				
    	}
       }else{
          $erreur = "<span class='erreur'> Echec lors de l'upload du fichier ".$file_dest."</span>";
       } 
    } else {
       $erreur = "<span class='erreur'> Erreur ! Le répertoire n'existe pas ou n'a pas les droits en écriture </span>";
    }
    


    Vérifie également la taille de ton fichier.... dès fois qu'elle soit supérieur à la limite configurée dans le php.ini ....
    0
  2. LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   32
     
    Bonjour,
    Je te remercie, il fallait que je modifie les droits d'accès au dossier.
    Tout fonctionne bien.
    Cordialement.
    0