我想使用AJAX上傳文件的ASP.Net MVC控制器追趕阿賈克斯文件
我的JavaScript代碼看起來是這樣,基本上用戶更改的輸入值每一次,它會自動上傳文件到控制器
var formdata = false;
if (window.FormData) {
formdata = new FormData();
}
$('input[name=default_export_filename]').change(function() {
var i = 0, len = this.files.length, img, reader, file;
for (; i < len; i++) {
file = this.files[i];
if (file.type.match(/spreadsheet/) || file.type.match(/ms-excel/)) {
if (window.FileReader) {
reader = new FileReader();
reader.onloadend = function (e) {
//showUploadedItem(e.target.result, file.fileName);
};
reader.readAsDataURL(file);
}
if (formdata) {
formdata.append("default_export_filename", file);
}
}
}
if (formdata) {
$.ajax({
url: root + mod + '/uploaddef',
type: "POST",
data: formdata,
processData: false,
contentType: false,
success: function (res) {
console.log(res);
}
});
}
});
在控制器端,我無法使用趕上這個文件
[HttpPost]
public ActionResult UploadDEF(HttpPostedFileBase file)
{
var jsonData = new
{
response = 3
};
return Json(jsonData); ;
}
還是這個
[HttpPost]
public ActionResult UploadDEF(FormCollectionfile)
{
var jsonData = new
{
response = 3
};
return Json(jsonData); ;
}
file參數始終爲空。但在firebug中,我可以看到瀏覽器正在將文件發佈到服務器。我應該用什麼對象來捕捉文件?
我意識到舊版瀏覽器不支持FormData對象,但我的客戶端都使用最新的瀏覽器。所以這不是問題。
看到這個帖子:http://stackoverflow.com/questions/2428296/jquery-ajax-upload-file-in-asp-net-mvc –