2017-02-10 49 views
0

HTML代碼asp.net圖片上傳與阿賈克斯-的WebMethod

<script type="text/javascript"> 
    function sendFile(file) { 
     var formData = new FormData(); 
     formData.append('file', $('#f_UploadImage')[0].files[0]); 
     $.ajax({ 
      type: 'post', 
      url: 'WebForm1.aspx/upload', 
      data: formData, 
      success: function (status) { 
       if (status != 'error') { 
        var my_path = "MediaUploader/" + status; 
        $("#myUploadedImg").attr("src", my_path); 
       } 
      }, 
      processData: false, 
      contentType: false, 
      error: function() { 
       alert("Whoops something went wrong!"); 
      } 
     }); 
    } 
    var _URL = window.URL || window.webkitURL; 
    $("#f_UploadImage").on('change', function() { 

     var file, img; 
     if ((file = this.files[0])) { 
      img = new Image(); 
      img.onload = function() { 
       sendFile(file); 
      }; 
      img.onerror = function() { 
       alert("Not a valid file:" + file.type); 
      }; 
      img.src = _URL.createObjectURL(file); 
     } 
    }); 
</script> 

C#代碼

[System.Web.Services.WebMethod] 
    public static string upload(HttpContext file) 
    { 
     return "okey"; 
    } 

我怎樣才能捕捉來作爲form-data.How值我在上傳方法中使用了一個變量類型的form-data。我嘗試了一些變量(HttpContext,HttpPostedFile,object,Image)但是不工作。我不想使用Generic Handler。請幫幫我。

回答

0

假設你的FileUpload是這樣的;

<input type="file" id="filebtn" runat="server" ... > 

您可以獲取該值;

HttpPostedFile file = Request.Files["filebtn"]; 
string value = Path.GetFileName(file.FileName).ToString();