2013-07-01 52 views
0

張貼我在我的page.how可以通過我這個文件上傳選擇的文件發佈到的jQuery主路徑上的文件上傳使用?我發現這個代碼在互聯網:如何uploadfile通過jQuery的

HTML

<input id="file" type="file" name="file"/> 
<div id="response"></div> 

JS

jQuery('document').ready(function(){ 

     var input = document.getElementById("file"); 
     var formdata = false; 
     if (window.FormData) { 
      formdata = new FormData(); 
     } 
     input.addEventListener("change", function (evt) { 

      var i = 0, len = this.files.length, img, reader, file; 

      for (; i < len; i++) { 
       file = this.files[i]; 

       if (!!file.type.match(/image.*/)) { 
        if (window.FileReader) { 
         reader = new FileReader(); 
         reader.onloadend = function (e) { 
          //showUploadedItem(e.target.result, file.fileName); 
         }; 
         reader.readAsDataURL(file); 
        } 

        if (formdata) { 
         formdata.append("image", file); 
         formdata.append("extra",'extra-data'); 
        } 

        if (formdata) { 
         jQuery('div#response').html('<br /><img src="ajax-loader.gif"/>'); 


         jQuery.ajax({ 
          url: "upload.aspx/Upload", 
          type: "POST", 
          data: formdata, 
          processData: false, 
          contentType: false, 
          success: function (res) { 
          jQuery('div#response').html("Successfully uploaded"); 
          } 
         }); 
        } 
       } 
       else 
       { 
        alert('Not a vaild image!'); 
       } 
      } 

     }, false); 

    }); 

筆者曾寫道:「在代碼層上,這將是正常的文件上傳工作,」但我不能瞭解how.is有誰知道它?

+0

這是上傳內容Url.In上述代碼的AJAX調用到遠程上載URL製成並且該數據被傳遞給它一個遙控器上的一個簡單和容易的方法。在成功響應時,它會更新響應div上的文本。適當的文件加載器類用於在將數據傳遞到遠程URL以便在ajax調用中上傳之前將數據加載到變量中。我希望清除您的疑問 – dreamweiver

+0

感謝您的回覆。我知道它是如何工作的。我不知道如何獲得上傳文件在我的asp.net codes.in其他後我的情況下,我們看到之前我們發佈數據在這種格式:(數據: 「{ID:2}」),我們得到它在代碼方面的格式如下:[的WebMethod] 公共靜態字符串上傳(Int64的ID) {},但它是從輸精管我it.how可以使用在發佈uploadfile我的代碼方? – Farkhonde

+0

好的,像這樣的'data:「{ID:2}」)'這樣的格式就像關聯數組一樣引用關鍵值對,這樣它就很容易在接收端獲取相應的值。我們在發送相同格式時使用的任何格式都需要保留在接收端。 – dreamweiver

回答

0

要將它發送到WebMethod,您仍然需要以JSON形式發送Base64字符串,並且您需要將contentType正確設置爲application/json。我相信ASP.NET會簡單地忽略您對upload.aspx/Upload的請求。

或者,它可能是更直接地發佈任何文件到您自己的HttpHandler的,這樣你就可以訪問更接近金屬的POST數據。

+0

感謝您的回覆。請給我一個完整的上傳jquery文件的例子。我需要解決這個問題imidiataly.Thanks在先進的 – Farkhonde

+0

我沒有一個完整的例子得心應手。如果你搜索諸如「jQuery文件上傳到ASP.NET」之類的東西,你應該找到很多示例代碼。 –