使用FormData和jQuery.ajax.post上传文件
当我在IE 8/9中使用FormData()上传文件时,会显示以下错误。请需要帮助 网页错误详细信息 用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;WOW64;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;.NET4.0C;.NET4.0E) 时间戳:2014年4月23日星期三14:06:30 UTC 消息:“FormData”未定义 第6行 字符:13 代码:0 MyCode:使用FormData和jQuery.ajax.post上传文件,jquery,asp.net,ajax,asp.net-mvc,Jquery,Asp.net,Ajax,Asp.net Mvc,当我在IE 8/9中使用FormData()上传文件时,会显示以下错误。请需要帮助 网页错误详细信息 用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;WOW64;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;.NET4.0C;.NET4.0E) 时间戳:2014年4月23日星期三14:06:30 UTC 消息:“F
$('#UploadImage').click(function () {
var formData = new FormData();
formData.append('file', $('input[type=file]')[0].files[0]);
var filevalue = $('file').val();
$.ajax({
url: "/controller/action",
data: formData,
processData: false,
contentType: false,
type: 'POST',
success: function (data, status, xhr) {
$('#FileId').val(data);
$('#file').val('');
var msg = "You have successfully Uploaded a Image.";
$("#Error").html(msg + xhr.status + " " + xhr.statusText);
$('#dialog').show();
$('#DialogMessage').text(msg);
$("#dialog").dialog({
modal: true,
resizable: false,
buttons: {
"Yes": function () {
$(this).dialog("close");
}
}
});
},
error: function (err) {
if (status == "error") {
var msg = "Sorry but there was an error: ";
alert(msg);
$("#Error").html(msg + xhr.status + " " + xhr.statusText);
}
}
});
});
<table class="dialogTable">
<tr>
<td><b>Select your file</b></td>
</tr>
<tr>
<td>
<input type="file" name="file" id="file" accept="gif|jpeg|bmp|png|jpg" /></td>
</tr>
</table>
<table>
<tr>
<td>
<input type="button" id="UploadImage" value="Upload Image" />
</td>
</tr>
Html代码:
$('#UploadImage').click(function () {
var formData = new FormData();
formData.append('file', $('input[type=file]')[0].files[0]);
var filevalue = $('file').val();
$.ajax({
url: "/controller/action",
data: formData,
processData: false,
contentType: false,
type: 'POST',
success: function (data, status, xhr) {
$('#FileId').val(data);
$('#file').val('');
var msg = "You have successfully Uploaded a Image.";
$("#Error").html(msg + xhr.status + " " + xhr.statusText);
$('#dialog').show();
$('#DialogMessage').text(msg);
$("#dialog").dialog({
modal: true,
resizable: false,
buttons: {
"Yes": function () {
$(this).dialog("close");
}
}
});
},
error: function (err) {
if (status == "error") {
var msg = "Sorry but there was an error: ";
alert(msg);
$("#Error").html(msg + xhr.status + " " + xhr.statusText);
}
}
});
});
<table class="dialogTable">
<tr>
<td><b>Select your file</b></td>
</tr>
<tr>
<td>
<input type="file" name="file" id="file" accept="gif|jpeg|bmp|png|jpg" /></td>
</tr>
</table>
<table>
<tr>
<td>
<input type="button" id="UploadImage" value="Upload Image" />
</td>
</tr>
选择您的文件
当我单击IE8中的UploadImage按钮时,会显示FormData()中的错误。@JayBlanchard部分正确。虽然您可以在现代浏览器中通过ajax上传文件,但这并不包括IE9和更旧版本。如果您使用的是IE9及更早版本,则必须使用
元素创建一个表单,该元素以隐藏的iframe为目标,然后提交表单。这将导致文件上载不会重定向主浏览上下文(窗口) 不能使用AJAX上传文件,必须使用不同的方法。这里是一个教程-@JayBlanchard可以上传。。。