Ошибка "не найдено" при загрузке файла с помощью jquery и обработчика (ashx)
UploadHandler.ashx по.cs
public class UploadHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        try
        {
            string dirFullPath = HttpContext.Current.Server.MapPath("~/Uploader/");
            string[] files;
            int numFiles;
            files = System.IO.Directory.GetFiles(dirFullPath);
            numFiles = files.Length;
            numFiles = numFiles + 1;
            string str_image = "";
            foreach (string s in context.Request.Files)
            {
                HttpPostedFile file = context.Request.Files[s];
                string fileName = file.FileName;
                string fileExtension = file.ContentType;
                if (!string.IsNullOrEmpty(fileName))
                {
                    fileExtension = Path.GetExtension(fileName);
                    str_image = "MyPHOTO_" + numFiles.ToString() + fileExtension;
                    string pathToSave_100 = HttpContext.Current.Server.MapPath("~/Uploader/") + str_image;
                    file.SaveAs(pathToSave_100);
                }
            }
            //  database record update logic here  ()
            context.Response.Write(str_image);
        }
        catch (Exception ac)
        {
        }
    }
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}
JsCode
/Image Upload code
function sendFile(file) {
    var formData = new FormData();
    formData.append('file', $('#f_UploadImage')[0].files[0]);
    $.ajax({
        url: 'UploadHandler.ashx',
        type: 'POST',
        data: formData,
        cache: false,
        processData: false,
        contentType: false,
        success: function(result) {
            if (result != 'error') {
                var my_path = "Uploader/" + result;
                $("#myUploadedImg").attr("src", my_path);
            }
        },
        error: function(err) {
            alert(err.statusText);
        }
    });
}
function callImgUploader() {
    var _URL = window.URL || window.webkitURL;
    $("#f_UploadImage").on('change', function() {
        var file, img;
        if ((file = this.files[0])) {
            img = new Image();
            img.onload = function() {
                sendFile(file);
            };
            img.onerror = function() {
                alert("Not a valid file:" + file.type);
            };
            img.src = _URL.createObjectURL(file);
        }
    });
}
Примечание: Моя страница Aspx-это другая папка, и Image Folder and UploadHandler.ashx.cs является ли папка route неправильной?
После запуска ajax request каждый раз, когда его дают Not-Found ошибка, как можно ее исправить.
Спасибо.
4 ответа:
Вы не упомянули, какой элемент управления загрузкой вы используете , я предполагаю, что это серверная сторона, и вам нужно получить к нему доступ следующим образом
Изменение
$('#f_UploadImage')To
$('#<%= f_UploadImage.ClientID %>')
Как вы и сказали
Моя страница Aspx-это другая Папка, папка изображений и UploadHandler.ashx по.cs
Вы должны изменить
url: 'UploadHandler.ashx',К
url: '/UploadHandler.ashx',В противном случае он попытается найти
UploadHandler.ashxв той же папке, что и страница ajax, и даст 404.
Спасибо за все ваши ценные отзывы,
Теперь моя проблема решена., задача в
UploadHandler.ashxустановке<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UploadHandler.ashx.cs" Inherits="Customer.UploadHandler" %>Наследует значение, не соответствующее моему пространству имен
UploadHandler.ashx.csэто проблема, теперь ее исправили.Спасибо всем.