2014-04-10 63 views
0

我正在使用ajax文件上傳控件。jquery或ashx不工作

它正在創建這個網站:

<form action="/pages/handlers/asyncfileuploadhandler.ashx" method="POST" enctype="multipart/form-data" target="ajaxUploader-iframe-1397144545"> 
    <input type="hidden" name="type" value="mindvoice"> 
    <input type="file" id="imageFile" style="display: block; width: 80%; margin-right: auto; margin-left: auto;"> 
</form> 

而且目標是:

<iframe width="0" height="0" style="display:none;" name="ajaxUploader-iframe-1397144545" id="ajaxUploader-iframe-1397144545"></iframe> 

的形式使用.submit()提交。

我ashx的處理程序:

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

using System; 
using System.Web; 
using Nettpals.Core; 
public class AsyncFileUploadHandler : IHttpHandler 
{ 

    public void ProcessRequest(HttpContext context) 
    { 
     var file = context.Request.Files[0]; // ArgumentOutOfBoundException 
    } 

    public bool IsReusable 
    { 
     get 
     { 
      return false; 
     } 
    } 

} 

我不知道如何處理該文件。

我使用jQuery ajaxfileupload

所以,我應該怎麼做才能抓住該文件?

回答

1

最後它的工作。剛剛添加name屬性到<input type="file">,它工作得很好。

0

HTML:

<input type="file" id="uploadFile" name="uploadFile"/> 
<input type="button" id="submit" value="Submit" onClick="UploadFile();"/> 

JQuery的:

<script type="text/javascript"> 
$(document).ready(function() { 
     function UploadFile() { 
    var fileName = $('#uploadFile').val().replace(/.*(\/|\\)/, ''); 
         if (fileName != "") { 
         $.ajaxFileUpload({ url: 'AjaxFileUploader.ashx', 
          secureuri: false, 
          fileElementId: 'uploadFile', 
          dataType: 'json', 
          success: function (data, status) { 
           if (typeof (data.error) != 'undefined') { 
         if (data.error != '') { 
          alert(data.error); 
         } else { 
          alert('Success'); 
         } 
        } 
       }, 
        error: function (data, status, e) { 
           alert(e); 
          } 
         } 
         ) 
        } 
} 
}); 
</script> 

有關進一步的參考,請參閱下面的鏈接。

File Upload Without Using Any Asp Controls