upload file using jquery and handler(ashx)

后端 未结 3 918
小蘑菇
小蘑菇 2020-12-29 13:27

I am trying to upload a file using jquery ajax with handler (c#). The problem is, when I call the handler I get

context.Request.File.Count=0
相关标签:
3条回答
  • 2020-12-29 13:36

    You can add this kind of code to the handler file. Then you can post to this url(whateverroot/yourhandler.ashx)

    The content type should be "multipart/form-data". For eg: If you're using a HTML form tag, then enctype="multipart/form-data".

    public void ProcessRequest(HttpContext context)
    {
            var result = "0";
            try
            {
                if (context.Request.Files.Count > 0)
                {
                    HttpPostedFile file = null;
    
                    for (int i = 0; i < context.Request.Files.Count; i++)
                    {
                        file = context.Request.Files[i];
                        if (file.ContentLength > 0)
                        {
                            var fileName = Path.GetFileName(file.FileName);
                            var path = Path.Combine(<somepath>, fileName);
                            file.SaveAs(path);
                            result = "1"; 
                        }
                    }    
    
                }
            }
            catch { }
          context.Response.Write(result);
    }
    
    0 讨论(0)
  • 2020-12-29 13:43

    i think the problem is with the contentType try

    contentType: 'multipart/form-data',
    

    OR

    contentType :'application/octet-stream';
    

    see this post for more information

    Sending multipart/formdata with jQuery.ajax

    0 讨论(0)
  • 2020-12-29 13:43

    Your code...

    $.ajax({
        type: "POST",
        url: "Services/UPloader.ashx",
        contentType: "application/json; charset=utf-8",
        success: OnComplete,
        error: OnFail
    });
    

    ..is missing the data parameter. The way it's currently written, nothing is being sent to the handler.

    You need to pass the file to the handler, using the data parameter. Please have a go through this link: http://www.aspdotnet-suresh.com/2015/02/jquery-upload-images-files-without-page-refresh-postaback-in-aspnet.html

    0 讨论(0)
提交回复
热议问题