Проблема размещения файла через jquery в asp.net MVC - PullRequest
0 голосов
/ 09 августа 2010

Я хочу проверить размер файла и тип файла, когда кто-то выбирает файл из файла загрузки, поэтому для этого я использую

$('#fuEnglish1').live('change', function () { 
var form = $("#form11").serialize();
var myurl = '<%= Url.Action("CheckFileSizeandType", "Media") %>';
             $.ajax({
                     url: myurl,
                     type: "POST",
                     data: { Media: form },
                     success: function (mydata) {                    
                     }
             });
});

чтобы опубликовать файл. Но при его публикации в контроллере метод Request.Files.Count равен 0. что я делаю не так.

Ответы [ 3 ]

2 голосов
/ 09 августа 2010

Большинство браузеров не позволяют отправлять файл с запросом AJAX.Если вам нужна кроссплатформенная асинхронная загрузка, вам необходимо использовать загрузчик на основе Flash, Java или iframe.Для загрузчика без Flash попробуйте Ajax Upload или плагин jQuery Form .

1 голос
/ 09 августа 2010

Помните, что тип кодировки формы должен быть "multipart / form-data", чтобы он действительно отправлял содержимое файла. К сожалению, я не думаю, что $ .ajax поддерживает разные энктипы, поэтому у вас есть два варианта:

  1. Сделать форму синхронной
  2. Используйте сторонний компонент асинхронной загрузки, например Uploadify (скачать и документацию здесь: http://www.uploadify.com/)

Надеюсь, это поможет!

0 голосов
/ 10 августа 2010

Установить <httpRuntime maxRequestLength="YourFileSizeHere"/> загрузить файл в обычном режиме и использовать jQuery для опроса действия MVC на предмет ошибки или успеха.

Это не решит проблему, связанную с тем, что ASP.NET должен загрузить весь файл, прежде чем вы сможете получить доступ к любому из свойств объекта. Также не обойдется проблема, связанная с тем, что вы не можете загрузить файл с помощью JavaScript по соображениям безопасности. Самое близкое, что вы можете - это нацелить форму на iframe через Javascript, это то, что делает Google.

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