Formulaire pour Uploader

Résolu/Fermé
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 - 25 mars 2019 à 18:25
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 - 25 mars 2019 à 23:33
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

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
25 mars 2019 à 21:03
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
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
25 mars 2019 à 23:33
Bonjour,
Je te remercie, il fallait que je modifie les droits d'accès au dossier.
Tout fonctionne bien.
Cordialement.
0