.NET WebMethod FileUpload - PullRequest
       13

.NET WebMethod FileUpload

1 голос
/ 11 ноября 2010

можно загрузить файл с помощью FileUpload Control и WebMethod?

Я бы хотел избежать использования UpdatePanel и ScriptManagers.

Как я могу это сделать?Каким параметром будет веб-метод?Есть ли какой-нибудь пример?

Спасибо!

1 Ответ

2 голосов
/ 05 июля 2011

Я не смог найти решение, которое вы спросили, используя 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 на стороне клиента :

  1. Обязательно укажите файл CSS и Javascript , загруженный с Загрузка Valum File веб-сайт.
  2. Используйте этот код для создания элемента управления загрузкой файлов

    <div id="divFileUpload">
        <noscript>
            <p>
                Please enable JavaScript to use file uploader.</p>
        </noscript>
    </div>
    
  3. Используйте этот код JavaScript для настройки элемента управления загрузкой файла

    $(function () {
        var uploader = new qq.FileUploader({
            element: document.getElementById('divFileUpload'),
            action: 'FileUpload.ashx',
            onComplete: function (id, fileName, responseJSON) {
                if (responseJSON.Success) {
                    alert("Success");
                }
            }
        });
    });
    

На стороне сервера :

  1. Создать ASHX файл для обработки запроса со стороны клиента.
  2. Пример кода

    public class FileUpload : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            //Save the file here
    
            //Return Json value to client
            context.Response.Write("{ \"Success\": true }");
        }
    }
    
  3. Очень важно , вернуть тип JSON клиенту.

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

Все кредиты отправляются на Andrew Valums для Valums File Upload и Syed BASHAR для .Net-кода сервера с использованием Valums File Upload .

...