我正在尝试使用 jQuery AJAX 和通用处理程序上传图像文件。但似乎该文件没有被传递给处理程序。提交后context.Request.Files[0];
始终为空:-/
我究竟做错了什么?
HTML:
<form id="form1" runat="server" method="post" enctype="multipart/form-data">
<input name="file" id="file" type="file" />
<input id="save" name="submit" value="Submit" type="submit" />
</form>
JS:
$().ready(function ()
{
$('#file').change(function ()
{
sendFile(this.files[0]);
});
});
function sendFile(file)
{
$.ajax({
type: 'post',
url: 'FileUpload.ashx',
data: file,
success: function () {
// do something
},
xhrFields:
{
onprogress: function (progress)
{
// calculate upload progress
var percentage = Math.floor((progress.total / progress.totalSize) * 100);
// log upload progress to console
console.log('progress', percentage);
if (percentage === 100) {
console.log('DONE!');
}
}
},
processData: false,
contentType: 'multipart/form-data'
});
}
阿什克斯:
public void ProcessRequest (HttpContext context)
{
HttpPostedFile file = context.Request.Files[0];
if (file.ContentLength > 0)
{
//do something
}
}