Multi upload php

Fermé
t671 Messages postés 1471 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 10 mars 2025 - 25 nov. 2009 à 18:56
 hgweills - 20 févr. 2014 à 17:51
Bonjour,

Je veux uploader plusieurs fichiers en même temps, avec inscription des noms des fichiers (ok), des liens des fichiers (ok), des extensions (nok), des titres et des textes (nok) dans la base. Le script fonctionne, sauf que je n'arrive pas à récupérer individuellement l'extension des fichiers, et je n'arrive pas non plus à récupérer le texte et le titre de chaque fichier.
La récupération des fichiers est ok.

Voici pour la saisie des fichiers à uploader :

<FORM ACTION="add_alb_photos1.php" METHOD="POST" ENCTYPE="multipart/form-data" value="envoyer" name="soumettre">
<INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=20000000>
<input type="hidden" name="posted">
Titre de l'image 1 :<br>
<textarea cols="70" name="titre" id="titre" rows="2" wrap="VIRTUAL" accesskey="c" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" ></textarea><br>
Texte image 1:<br>
<textarea cols="70" name="texte" id="texte" rows="2" wrap="VIRTUAL" accesskey="c" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" ></textarea><br>
Image 1 : <br><INPUT TYPE=FILE NAME="fichier[]" size="76"><br>
Titre de l' image 2 :<br>
<textarea cols="70" name="titre" id="titre" rows="2" wrap="VIRTUAL" accesskey="c" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" ></textarea><br>
Texte image 2:<br>
<textarea cols="70" name="texte" id="texte" rows="2" wrap="VIRTUAL" accesskey="c" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" ></textarea><br>
Image 2 : <br><INPUT TYPE=FILE NAME="fichier[]" size="76"><p>
Titre l'image 3 :<br>
<textarea cols="70" name="titre" id="titre" rows="2" wrap="VIRTUAL" accesskey="c" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" ></textarea><br>
Texte image 3:<br>
<textarea cols="70" name="texte" id="texte" rows="2" wrap="VIRTUAL" accesskey="c" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" ></textarea><br>
Image 3 : <br><INPUT TYPE=FILE NAME="fichier[]" size="76"><p>
<INPUT TYPE=SUBMIT value="Téléchargement">
</FORM> 


Et voici pour l'insertion des éléments :

$titre = $_POST['titre'];
$texte = $_POST['texte'];
$fichier = $_POST['fichier'];

if (isset($_FILES['fichier'])) 
{ 
    //$_FILES existe 
    foreach ($_FILES['fichier']['name'] as $key => $value) 
    { 
        $fichier=$value;//nom reel de l'image 
        $dossier = 'upload/'; 							        $extensions = array('.gif', '.jpg', '.jpeg', '.bmp', '.png');
	$extension = strrchr($_FILES['fichier']['name'], '.'); 
	$fic = explode(".", $fichier);	//--------récupération du nom du fichier sans extension
        if (is_uploaded_file($tmp)) 	//--------permet de vérifier si le fichier a été uplodé via http 
        	{ 
        	
            //vérification du type de l'img, son poids et sa taille 
            $type_file = $_FILES['fichier']['type'];
	$allowedExt = array('jpg', 'jpeg', 'bmp', 'gif', 'png');
				if (in_array(strtolower($type_file), $allowedExt))
				exit('Le fichier n\'est pas une image');            	
                if (move_uploaded_file($tmp,'upload/'.$fichier)) 
                { 
  
	       	   	    $sql = "INSERT INTO photos(id, nom, extension, lien, titre, texte) VALUES('$id', '$fic[0]', '$extension', '$dossier$fichier', '$titre', '$texte')";
                	mysql_query($sql) or die('Erreur SQL !'.$req_fich.mysql_error());
                	 
                 }
            } 
            else { 
                    //l'image ne peut être déplacée, on supprime le fichier temporaire 
                    @ unlink ($tmp); 
                    echo 'L\'image n\'a pu être déplacée !'; 
                 } 
		}	
} 
            	


Merci pour votre aide ...
A voir également:

3 réponses

Déja, dans ton formulaire HTML, les champs "titre", et "texte" ont tous le même nom !
Il faudra :

<textarea cols="70" name="titre_1" ...>
<textarea cols="70" name="texte_1"...>

<textarea cols="70" name="titre_2" ...>
<textarea cols="70" name="texte_2"...>

Et ensuite, tu pourrais les récuperer dans le script php comme ceci :

<?php

$titre_1 = $_POST['titre_1'];
$titre_2 = $_POST['titre_2'];
$texte_1 = $_POST['texte_1'];
$texte_2 = $_POST['texte_2'];

// traitement des données

...

?>
0
t671 Messages postés 1471 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 10 mars 2025 11
26 nov. 2009 à 10:12
Bonjour Spleen, et merci pour la réponse.
Mais dans le script, je fais une boucle pour insérer mes fichiers "image" qui sont dans une table !
Avec ta méthode, chaque titre et texte devront être insérés séparemment dans la base. Pour chaque image, titre et texte, faire un INSERT !!!!!!
Je pensais pouvoir rattacher le titre et le texte de l'image dans la boucle "foreach".

Est-ce possible ?
0
C'est pour faire un multiupload comme http://fr.multi-up.net ?
0
ou alors http://fr.mirror.is
0