Jquery Ajax FileUploader

#javascript #jquery #asp.net #flash

#javascript #jquery #asp.net #flash

Вопрос:

Я пытаюсь создать загрузчик файлов с индикатором выполнения с Asp.net Jquery.

важно то, что у меня нет веб-страницы MVC.

Я следовал инструкциям здесь: http://blog.stevensanderson.com/2008/11/24/jquery-ajax-uploader-plugin-with-progress-bar /

Однако он просто пропускает весь обработчик, который мне нужно создать..

до сих пор у меня есть:

 <script src="../../Scripts/swfupload.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-asyncUpload-0.1.js" type="text/javascript"></script>

<script type="text/javascript">
    $(function () {
        $("#yourID").makeAsyncUploader({
            upload_url: "/Controls/UploadHandler.ashx", // Important! This isn't a directory, it's a HANDLER such as an ASP.NET MVC action method, or a PHP file, or a Classic ASP file, or an ASP.NET .ASHX handler. The handler should save the file to disk (or database).
            flash_url: '../../Scripts/swfupload.swf',
            button_image_url: '../../Scripts/blankButton.png'
        });
    });
</script>
  

и все это работает так, как должно. Однако он, очевидно, не загружается, потому что у меня нет обработчика.. Но я понятия не имею, с чего начать с обработчика ASHX..

Я безуспешно пытался выполнить поиск в сети. Может кто-нибудь указать мне правильное направление, как создать этот обработчик?

Ответ №1:

Я отсортировал его

 <%@ WebHandler Language="C#" Class="UploadHandler" %>

using System;
using System.Web;
using System.IO;

public class UploadHandler : IHttpHandler {

    public void ProcessRequest (HttpContext context) {

        string strFileName = Path.GetFileName(context.Request.Files[0].FileName);
        string strExtension = Path.GetExtension(context.Request.Files[0].FileName).ToLower();
        string strLocation = context.Server.MapPath("~/SaveFile")   "/"   strFileName;
        context.Request.Files[0].SaveAs(strLocation);

        context.Response.ContentType = "text/plain";
        context.Response.Write("OK");
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}