2013-05-01 6 views
1

Je me bats avec ça toute la journée et j'en ai marre d'être coincé. J'ai passé une demi-heure ce matin à faire un joli petit uploader personnalisé pour les photos de profil sur la même application que je suis maintenant coincé.

La question n'est pas ici le téléchargement (j'avais que vers le bas), mais l'étendre à une forme qui permet de multiples téléchargements. Ce n'est pas un fichier multiple, un uploader à entrée unique, mais plutôt plusieurs entrées.

Je n'ai que deux actuellement instances de input type='file' sous forme. J'utilise Codeigniter, mais le problème n'est pas l'incapacité de CI à traiter plusieurs téléchargements (je ne pense pas). Tout ce que j'essaie de faire maintenant est simplement faire print_r($_FILES); qui montre seulement le deuxième des deux entrées.

Si je les échanger dans leur placement au sein de la forme qu'elle est selon l'une des émissions encore que la dernière au lieu de deux.

J'ai vérifié leurs noms, etc. sur 100x déjà aujourd'hui. Vraiment pas sûr de ce qui se passe. Et, pour être clair, j'ai fouillé SO et Google pour voir si je pouvais trouver le problème. Jusqu'à présent, je n'ai rien trouvé.

Merci pour toute aide ou conseil.

: ---------------------------- EDITS

<form action="http://curvo:8888/index.php/offers/create" method="post" accept-charset="utf-8" class="bigolform" id="offer-form" enctype="multipart/form-data">     
        ... 
        <input type="file" name="ProductOfferPhoto" value="" id="ProductOfferPhoto">      

        ... 

        <input type="file" name="QuoteDoc" value="" id="QuoteDoc">      

        <!--using an ajax uploading script--> 
        <script type="text/javascript" src="/assets/js/libs/ajaxfileupload.js"></script> 


        <a href="#" class="orange btn add submit-the-offer">Complete offer</a> 

</form> 

J'ai essayé d'utiliser genericName[] ainsi, mais cela ne m'apporte qu'un tableau vide.

+3

S'il vous plaît poster le code HTML – Ding

+0

Aussi utile serait la sortie de 'print_r ($ _ FICHIERS)' – Ding

+1

Quel est le 'nom' de votre champ de saisie?On dirait que vous avez besoin d'un tableau comme 'name = yourFieldName []' –

Répondre

5

Assurez-vous que votre entrée name est un tableau si vous acceptez plusieurs fichiers:

Téléchargement unique:
<input name="productImage" accept="image/*" type="file" />

téléchargements multiples:
<input name="productImage[]" accept="image/*" type="file" />
<input name="productImage[]" accept="image/*" type="file" />
... - ------------------------------------^Le [] signifie qu'il s'agit d'un tableau et vous permet de soumettre plusieurs valeurs pour le même nom.

Ensuite, vous trouverez plusieurs valeurs pour $_FILES au lieu de seulement le dernier fichier téléchargé (comme chaque fichier est prépondérant essentiellement le dernier moment)

+0

Oy, merci, cela a résolu mon problème. – Andrew

0

Merci pour les idées et suggestions, tout le monde. Je ne connais pas la réponse concernant une solution, mais j'ai trouvé la réponse du "pourquoi" concernant le problème.

Le script ajaxfileuploader.js je l'avais attrapé hors de Nettuts vomissait choses. Cela a bien fonctionné pendant un certain temps quand j'ai eu le téléchargement unique mais dès que j'ai commencé à essayer de faire des multiples, il brooke vers le bas et seulement attrapé le dernier champ input.

explorera le plugin File Upload jQuery par blueimp dans le futur proche. Pour l'instant, je vais passer à côté d'ajax'ing afin de respecter le délai que j'ai pour lundi.

Merci encore pour l'aide.

Questions connexes