Несколько файлов с одной проблемой загрузки файла в ASP.NET MVC 3 - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть один файл загрузки , который может выбрать несколько файлов.Но серверная часть получает последний выбор, только когда я нажимаю на кнопку отправить.Например, впервые я выбираю 2 изображения, затем 3 изображения, всего 5 изображений.После отправки сервер ловит только 3 последних изображения.Моя идея - поместить все изображения в один скрытый вход, тогда сервер получит данные из скрытого вводаНо я не знаю, как поместить их в скрытый ввод.

Мой вопрос: как поместить изображение данных в скрытый ввод?

1 Ответ

1 голос
/ 14 февраля 2012

Вы можете клонировать фактический ввод файла.Вот пример:

Модель:

public class MyViewModel
{
    public IEnumerable<HttpPostedFileBase> Files { get; set; }
}

Контроллер:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel());
    }

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        return View(model);
    }
}

Вид:

@model MyViewModel

<script type="text/javascript">
    $(function () {
        $(':file').change(function () {
            if (this.files.length > 0) {
                var real = $(this);
                var cloned = real.clone(true);
                real.hide();
                cloned.insertAfter(real);
                real.appendTo('form');
            }
        });
    });
</script>

@Html.TextBoxFor(x => x.Files, new { type = "file", multiple = "multiple", value = "", id = (string)null })

@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <button type="submit">Upload</button>
}

Идея состоит в том, что исходный файлвход за пределами формы.Затем каждый раз, когда пользователь выполняет выбор файла, мы клонируем поле и вставляем его в форму как ввод скрытого файла.Когда форма отправлена, все файлы будут загружены на сервер.

Дальнейшее усовершенствование сценария, очевидно, будет заключаться в предоставлении пользователю визуальной индикации количества файлов, которые будут загружены на сервер.сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...