Плагин jQuery Forms автоматически преобразует загрузку файла в запись на основе iframe, а не в запись ajax. (Это потому, что XHR не включает файлы.) Поэтому вам просто нужно создать обычную страницу aspx для обработки ответа. Он может быть просто пустым, за исключением обработчика события загрузки. Если вам нужен какой-либо ответ, вы можете отправить его обратно в HTML, который можно прочитать из тела, которое передается обратно.
Например, создать файл загрузки, который при изменении вызывает это:
function doSubmit() {
var data = {};
$("#"+formId).ajaxSubmit({success: gotResponse, data: data});
}
Обратите внимание, что "ajaxSubmit" здесь является неправильным. В данном случае (с загрузкой файла) это обычная запись, которая выглядит как запрос ajax. Очевидно, formId - это идентификатор формы, содержащей элемент управления загрузкой файлов.
и функция ответа, (например):
function gotResponse(data) {
/* Cut out the extraneous stuff */
result = data.replace(/^.*<div id="infoDiv">/, '')
.replace(/<\/div>.*$/,'');
/* do something with result */
}
Создайте страницу aspx с div следующим образом:
В странице загрузки для этой страницы сделайте это:
protected void Page_Load(object sender, EventArgs e)
{
try
{
// Get the file and do whatever with it.
var file = Request.Files[0];
// Put the info to send back as a result here
InfoDiv.InnerHtml = "{error: false}"; // Or whatever
}
catch(Exception e)
{
InfoDiv.InnerHtml = "{error: true}"; // Or whatever
}
}
НТН