Formulaire pour Uploader

Résolu/Fermé
LaChaux78 Messages postés 581 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 21 novembre 2024 - 25 mars 2019 à 18:25
LaChaux78 Messages postés 581 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 21 novembre 2024 - 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 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
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 581 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 21 novembre 2024 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