Dateiupload mit jQuery AJAX und Handler (ashx) funktioniert nicht
Ich versuche, eine Bilddatei mit jQuery AJAX und einem generischen Handler hochzuladen. Es scheint jedoch, dass die Datei nicht an den Handler übergeben wird. Nach dem Absendencontext.Request.Files[0];
ist immer null: - /
Was mache ich falsch?
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'
});
}
ASHX:
public void ProcessRequest (HttpContext context)
{
HttpPostedFile file = context.Request.Files[0];
if (file.ContentLength > 0)
{
//do something
}
}