Я работаю в C# WebForms. Я написал функцию загрузки файлов. После выбора файла вызов AJAX из javascript будет сделан в общий обработчик c (файл ashx). Когда файл загружается без ошибок, я получаю сообщение «Файл был успешно загружен!» сообщение, отправленное обработчиком, как ожидалось. Однако при возникновении ошибки я получаю «Внутреннюю ошибку сервера». Я хотел бы получить сообщение об ошибке c, которое я отправляю из обработчика в блоке catch.
Code in aspx page:
function uploadFile(file, i) {
alert("Inside uploadFile");
var formData = new FormData();
formData.append(file.name, file);
$.ajax({
url: "FileUploadHandler.ashx",
type: "POST",
contentType: false,
processData: false,
data: formData,
success: function (result) {
alert(result);
},
error: function (err) {
alert(err.statusText);
}
});
}
Code in ashx file:
public class FileUploadHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request.Files.Count > 0)
{
HttpFileCollection files = context.Request.Files;
for (int i = 0; i < files.Count; i++)
{
HttpPostedFile file = files[i];
try
{
UploadSelectedFile(file);//a method call which uploads the file
context.Response.ContentType = "text/plain";
context.Response.Write("File was uploaded successfully!");
}
catch (Exception ex)
{
context.Response.ContentType = "text/plain";
context.Response.Status = "Could not upload file. Reason: " + ex.Message;
}
finally
{
}
}
}
}
}