Я не смог найти решение, которое вы спросили, используя WebMethod
, поэтому я нашел альтернативное решение, использующее HTTPHandler
или более известный как ASPX
control / page.
Для достижения того, что вы хотели, я использую Загрузка файла Valums , есть много альтернатив, но это тот, который я нашел очень подходящим для моего случая. Вы можете найти более подробную информацию, документацию и скачать код JavaScript здесь:
http://valums.com/ajax-upload/
Код также дает пример того, как обрабатывать запрос на серверной стороне , однако, он не включает пример кода в .net , поэтому я нашел этот проект.
http://www.codeproject.com/KB/aspnet/AspNetHandlerAjaxUpload.aspx
Как использовать Valums File Upload и обработать запрос на загрузку файла, используя .Net C # на стороне сервера.
Подводя итог, вы можете использовать Valums File Upload на стороне клиента :
- Обязательно укажите файл CSS и Javascript , загруженный с Загрузка Valum File веб-сайт.
Используйте этот код для создания элемента управления загрузкой файлов
<div id="divFileUpload">
<noscript>
<p>
Please enable JavaScript to use file uploader.</p>
</noscript>
</div>
Используйте этот код JavaScript для настройки элемента управления загрузкой файла
$(function () {
var uploader = new qq.FileUploader({
element: document.getElementById('divFileUpload'),
action: 'FileUpload.ashx',
onComplete: function (id, fileName, responseJSON) {
if (responseJSON.Success) {
alert("Success");
}
}
});
});
На стороне сервера :
- Создать ASHX файл для обработки запроса со стороны клиента.
Пример кода
public class FileUpload : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
//Save the file here
//Return Json value to client
context.Response.Write("{ \"Success\": true }");
}
}
Очень важно , вернуть тип JSON клиенту.
Для получения более подробной информации о том, как обрабатывать запрос со стороны клиента, обратитесь к указанному выше URL.
Все кредиты отправляются на Andrew Valums для Valums File Upload и Syed BASHAR для .Net-кода сервера с использованием Valums File Upload .