Несколько регистрируют загрузку с ASP.NET MVC и jQuery, Несколько Регистрируют Плагин Загрузки

Я использую jQuery, Несколько Регистрируют Плагин Загрузки для загружения нескольких картинок. Но форма отправляет только 1, вершину, объект. Скрипач (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

...

Вот мой код:

<% 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" />

    <% } %>

И код контроллера:

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");
    }

Советуйте мне, как решить проблему. Возможно, можно советовать другому способу позволить пользователю загрузить несколько изображений. TIA

PS. Помимо HTML-кода сгенерированных средствами управления sript:

<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[]"/>
7
задан DaveRandom 25 February 2013 в 20:45
поделиться

3 ответа

Я думаю, что проблема в имени файла[] в сгенерированном HTML. Очевидно, что со стороны плагина это работает плохо.

Иногда бывает так, что получается изменить правильное поведение на противоположное. Попробуйте удалить "[]" из имени и смотрите.

На самом деле, так как вы не используете поля ввода по имени. Вы можете оставить имя неустановленным, как на примере с домашней страницей плагина.

Попробуйте.

.
1
ответ дан 6 December 2019 в 10:50
поделиться

Вы должны иметь возможность привязки к списку.

public ActionResult UploadImages(List<HttpPostedFileBase> file)
{ 
// magic
}

и ваш вид должен иметь

<input id="file" class="multi" type="file" accept="jpg|png" name="file" style="position: absolute; top: -3000px;"/>
2
ответ дан 6 December 2019 в 10:50
поделиться

Windows не поставляется с утилитой grep (на самом деле в ней есть findstr , но это не совсем то же самое), поэтому необходимо установить что-то вроде cygwin или unix utils для windows . После установки их необходимо добавить в % PATH% , чтобы окна знали, где их искать. Это можно сделать либо в командной строке, запустив cmd.exe и введя команду наборов PATH = < your _ path >;% PATH% , либо в каком-либо окне параметров настройки, которое можно получить, щелкнув правой кнопкой мыши значок Мой компьютер (например, переменные среды здесь являются его картинный).

Обратите внимание, что в окнах имеется утилита find , а также в системе % PATH% , которая может привести к неправильной работе определенных команд (например, M-x grep-find ), поэтому важно сначала поместить unix-find в % PATH% .

-121--3375319-

Поскольку абстрактные классы имеют состояние (поля) и что-то, их нужно как-то инициализировать.

-121--997853-

Я нашел. Свойство «namePattern» должно быть определено для создания входных данных с другим именем.

За бывшее:

<input type="file" accept="gif|jpg|jpeg|png" />


<script language="javascript" type="text/javascript">
        $(document).ready(function () {
            $i = (1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20);
            $(':file').MultiFile({ namePattern: '$name_$i', maxlength: 20 });
        });  
</script>

Тем не менее, спасибо за помощь.

1
ответ дан 6 December 2019 в 10:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: