我想要做的是通过AJAX上传文件,该文件以JSON编码的字符串作为其文件名。我编写的代码在Chrome中运行良好,但在IE中则不然。
这是我到目前为止的代码:
var file = {
name: "example.jpg",
guid: "example123",
index: "0"
}
var file_obj_string = JSON.stringify(file);
var formData = new FormData();
//curr_ob[0].files[0] is my file upload control
formData.append("FileUpload", curr_ob[0].files[0], file_obj_string);
$.ajax({
type: "POST",
url: '/AddFile',
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function (response) {
//do something
},
});
然后在服务器端:
[HttpPost]
public JsonResult AddFile()
{
for (int i = 0; i < Request.Files.Count; i++)
{
HttpPostedFileBase file = Request.Files[i];
//do something with file
//...
}
}
在服务器端,与Chrome一起运行时,上传的FileName正确显示为:
“{%22name%22:%22example.jpg%22%22guid%22:%22example123%22%22index%22:0}
但如果我在IE中运行它,则fileName属性为此 “{”
所以我的问题是,为什么开始时会有所不同,我该怎么做才能解决它?
谢谢