2010-08-09 47 views
0

發佈文件,我想檢查文件大小和文件類型時,有人選擇從文件上傳文件,以便爲我使用問題通過的jQuery在asp.net mvc的

$('#fuEnglish1').live('change', function() { 
var form = $("#form11").serialize(); 
var myurl = '<%= Url.Action("CheckFileSizeandType", "Media") %>'; 
      $.ajax({ 
        url: myurl, 
        type: "POST", 
        data: { Media: form }, 
        success: function (mydata) {      
        } 
      }); 
}); 

發佈的文件。但是,當它發佈到控制器的方法Request.Files.Count等於0. 什麼即時通訊做錯了。

+4

你真的願意發送一個完整的文件到服務器只是爲了檢查其大小? – ggarber 2010-08-09 08:24:38

+0

是的,我可以發送完整的文件,但我想檢查它的大小和類型之前保存 – 2010-08-09 08:32:13

+1

@gustavogb:那你最喜歡的sugesstion – 2010-08-09 08:39:16

回答

1

請記住,encodingtype格式需要是「multipart/form-data」才能真正發佈文件內容。不幸的是,我不認爲$就支持不同enctypes,所以你有兩個選擇:

  1. 使窗體同步
  2. 使用第三方異步上傳組件像Uploadify(這裏下載和文檔:http://www.uploadify.com/

希望有所幫助!

+0

form11的enctype定義爲「multipart/form-data」,但它不起作用 – 2010-08-09 13:38:39

+0

正如我所說的,我不認爲$ .ajax支持開箱即用。你需要一個jQuery插件.. – 2010-08-09 14:19:45

2

大多數瀏覽器不允許您發送帶有AJAX請求的文件。如果你想要一個跨平臺的異步上傳,你需要使用基於Flash,Java或iframe的上傳器。對於非Flash上​​傳器,請嘗試使用Ajax UploadjQuery Form插件。

0

設置<httpRuntime maxRequestLength="YourFileSizeHere"/>正常上傳文件,並使用jQuery輪詢MVC Action以報錯或成功。

這不會解決ASP.NET在訪問任何對象屬性之前必須上傳整個文件的問題。它也不會解決無法通過JavaScript上傳文件的問題,因爲安全原因,您可以通過JavaScript將該表單定位到iframe,這就是Google所做的。