HTML 5 File API - Загрузить файл на сервер через JQuery - PullRequest
2 голосов
/ 05 января 2012

У меня есть приложение ASP.NET MVC. Я пытаюсь позволить пользователю загружать файлы на сервер. Мне нужно использовать HTML 5 File API. В настоящее время у меня есть следующий код:

  <div><input id="filesToUpload" type="file" multiple="multiple" /></div>
  <div><input type="button" value="upload" onclick="return uploadFiles();" /></div>

    function uploadFiles() {
        var files = null;    // How do I get the files collection from "filesToUpload" here? 
        if ((files == null) || (files.length)) {
            alert("Please choose at least one file to upload.");
            return;
        }

        for (var i = 0, f; f = files[i]; i++) {
            var reader = new FileReader();
            reader.readAsBinaryString(f);
            uploadFile(reader.result);
        }
    }

    function uploadFile(f) {
        // TODO: I'm not sure how to finish my actual AJAX request to post the file back to the server.

        $.ajax({
            url: "/uploadFile",
            type: "PUT",
            contentType: "application/json",
            success: function (result) {
                alert("File Uploaded!");
            },
            error: function (p1, p2, p3) {
                alert("Upload Failed");
            }
        });
    }

Как видно из кода, у меня есть пробелы в знаниях, которые я пытаюсь заполнить.

  1. Как получить коллекцию файлов из HTML-файла "filesToUpload" элемент через JQuery? Причина, по которой я хочу этот подход, состоит в том, что я делаю не хотите начинать загрузку, пока пользователь фактически не нажмет Кнопка «Загрузить», показанная ниже.

  2. Что мне указать в качестве значения «data» в моей попытке $ .ajax?

  3. Каким должен быть contentType в моей попытке $ .ajax?

Большое спасибо за помощь!

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