Télécharger plusieurs fichiers avec ASP.NET MVC & jQuery Télécharger Plusieurs Fichiers du Plugin
Je suis en utilisant jQuery Télécharger Plusieurs Fichiers Plugin pour télécharger plusieurs images. Mais la forme de postes de seulement 1, haut, point. Fiddler (POST):
POST /Images/UploadImages HTTP/1.1
Host: localhost:4793
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost:4793/images
Cookie: .ASPXAUTH=EFAC4E03FA49056788028048AE1B099D3EB6D1D61AFB8E830C117297471D5689EC52EF40C7FE2CEF98FF6B7C8CAD3AB741A5E78F447AB361A2BDD501331A88C7B75120611CEA4FECA40D972BB9401472
Content-Type: multipart/form-data; boundary=---------------------------1509898581730
Content-Length: 290022
-----------------------------1509898581730
Content-Disposition: form-data; name="album"
1
-----------------------------1509898581730
Content-Disposition: form-data; name="file[]"; filename="Blue hills.jpg"
Content-Type: image/jpeg
...
Voici mon code:
<% using (Html.BeginForm("UploadImages", "Images", FormMethod.Post, new { enctype = "multipart/form-data"}))
{%>
<%= Html.DropDownList("album", (IEnumerable<SelectListItem>)ViewData["Albums"])%>
<br />
<input type="file" name="file[]" id="file" class="multi" accept="jpg|png" />
<br />
<input type="submit" name="submit" value="Submit" />
<% } %>
Et du contrôleur de code:
public ActionResult UploadImages(FormCollection formValue)
{
foreach (string file in Request.Files)
{
HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
if (hpf.ContentLength == 0)
continue;
//do something with file
}
return RedirectToAction("Index");
}
Conseillez-moi svp comment résoudre le problème. Peut-être que vous pouvez en informer les autres de façon à permettre à l'utilisateur de télécharger plusieurs images. TIA
PS. Outre le code html généré par le sript contrôles:
<input id="file" class="multi" type="file" accept="jpg|png" name="file[]" style="position: absolute; top: -3000px;"/>
<input id="file_F1" class="multi MultiFile" type="file" accept="jpg|png" name="file[]" style="position: absolute; top: -3000px;"/>
<input id="file_F2" class="multi MultiFile" type="file" accept="jpg|png" name="file[]" style="position: absolute; top: -3000px;"/>
<input id="file_F3" class="multi MultiFile" type="file" accept="jpg|png" name="file[]" style="position: absolute; top: -3000px;"/>
<input id="file_F4" class="multi MultiFile" type="file" accept="jpg|png" name="file[]"/>
- Modifier le nom de fichier[] pour fichier peut-être?
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une solution. La réponse a été de changer le HttpPostedFileBase à un IEnumerable (si vous téléchargez plusieurs fichiers).
J'ai eu le même problème(s) que vous avez ci-dessus. Cela a résolu mon problème. Voici un bon lien:Phil Haacks post
Le problème est que vous essayez d'accéder à un tableau qui contient même indice que le POSTE soumettre est l'obtention d'un tableau de fichiers avec le même nom.
Au lieu de
utilisation
Vous devriez être capable de se lier à une liste.
et votre vue doit avoir
En HTML5, vous pouvez télécharger plusieurs fichiers en un seul champ d'envoi de fichier:
Dans ce cas, votre action méthode peut être quelque chose comme:
Je pense que le problème est le nom de fichier[] dans le code HTML généré. Clairement ce si ne fonctionne pas bien depuis le plug-in côté.
Parfois inverser le bon comportement est ce qui fonctionne. Essayez de supprimer les "[]" à partir du nom et de voir.
En fait, depuis que vous n'êtes pas en utilisant les champs de saisie de nom. Vous pouvez laisser le nom unset similaire à la page d'accueil exemples de plug-in.
Lui donner un essai.
Que j'ai trouvé. Le "namePattern' propriété doit être définie afin de générer des entrées avec nom différent.
Pour ex.:
Néanmoins, je vous remercie pour votre aide.
Vous pouvez regardez ici une solution de Phil Haack.
Sur la vue
Sur Le Contrôleur De
La diffusion de nombreux fichiers avec jquery ajax et .net MVC:
En Vue:
En js:
Contrôleur:
vue
Contrôleur