Я пытаюсь под кодами загрузить файл без обновления страницы.Я использую Jquery, Ajax и asp.net.
HTML
$(".btnUpload").click(function () {
var formData = new FormData($("form")[0]);
var files = $(".inputfile").get(0).files;
formData.append(files[0].name, files[0]);
$.ajax({
xhr: function () {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener('progress', function (e) {
if (e.lengthComputable) {
var a = e.loaded;
var b = e.total;
var percent = Math.round(a * 100 / b) + "%";
$(".lblProgress").html(percent);
console.log('Bytes Loaded: ' + a);
}
});
return xhr;
},
method: 'POST',
url: 'HandlerCS.ashx',
data: formData,
processData: false,
contentType: false,
success: function () {
alert("Finish");
}
});
});
C #
<%@ WebHandler Language="C#" Class="HandlerCS" %>
using System;
using System.IO;
using System.Net;
using System.Web;
using System.Web.Script.Serialization;
public class HandlerCS : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request.Files.Count > 0)
{
HttpPostedFile postedFile = context.Request.Files[0];
string folderPath = context.Server.MapPath("~/Uploads/");
string fileName = Path.GetFileName(postedFile.FileName);
postedFile.SaveAs(folderPath + fileName);
string json = new JavaScriptSerializer().Serialize(
new
{
name = fileName
});
context.Response.StatusCode = (int)HttpStatusCode.OK;
context.Response.ContentType = "text/json";
context.Response.Write(json);
context.Response.End();
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
Но, когда я нажимаю кнопку загрузки, после загрузки файлапо окончании я получаю сообщение об ошибке ниже:
Не удалось загрузить ресурс: сервер ответил со статусом 404 (не найдено)
Что не так с моим кодом?