Multi upload php

t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   -  
 hgweills -
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

Spleen
 
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 1476 Date d'inscription   Statut Membre Dernière intervention   11
 
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
alpha5417
 
C'est pour faire un multiupload comme http://fr.multi-up.net ?
0
hgweills
 
ou alors http://fr.mirror.is
0