Не возвращайте файл в редактор в httpHandler на веб-формах Asp.net

Я использую httpHander, чтобы загрузить файл и вернуть его в редактор.

Это Сохранить файл, но не возвращает изображение в редактор. мой код для этого:

 public void ProcessRequest(HttpContext context)
    {
        HttpPostedFile file = context.Request.Files["file"];
        string path=HttpContext.Current.Server.MapPath("~")+"/Images/"+file.FileName;
        file.SaveAs(path);
        context.Response.ContentType = "image/jpeg";
        context.Response.Write("<img src='"+path+"'/>");
    }

и мой конфиг редактора:

                <script type="text/javascript">
                    $(document).ready(function () {
                        $(".editor").redactor({
                            imageUpload: "Upload.ashx/ProcessRequest()",
                            fileUpload: "Upload.ashx/ProcessRequest()",
                            linkFileUpload: "Upload.ashx/ProcessRequest()"
                            ,autoformat: false
                            , convertDivs: false
                        });

                    });
</script>

а также:

    <asp:TextBox runat="server" ID="txtContnt" TextMode="MultiLine" CssClass="editor"></asp:TextBox>

Мой редактор: редактор, и я использую веб-формы asp.net. httphandler работает очень хорошо, но не возвращает файл в редактор

1 ответ

Ваш путь неверен. Server.MapPath возвращает абсолютный путь (файловая система), а не путь, который может использовать веб-браузер. Также, согласно этому документу, ожидаемый ответ - строка JSON, а не тег img.

public void ProcessRequest(HttpContext context)
{
    HttpPostedFile file = context.Request.Files["file"];
    string virtualPath = "/Images/" + file.FileName;
    string path=HttpContext.Current.Server.MapPath("~") + virtualPath;
    file.SaveAs(path);
    context.Response.ContentType = "image/jpeg";
    context.Response.Write(@"{ 'filelink': '" + virtualPath + "' }");
}
Другие вопросы по тегам