http扩展程序无法上传图像

本文关键字:图像 扩展 程序 http | 更新日期: 2023-09-27 18:19:20

我正在尝试在web表单中实现Ajax控件工具包htmleditorexteder,但我得到以下错误:

0x800a139e - JavaScript runtime error: Sys.ArgumentException: Cannot deserialize empty string.

我不知道这个错误是如何或为什么发生的。我试图在互联网上搜索没有成功。如能提供任何建议,我将不胜感激。

对齐按钮似乎也不起作用。当我切换到代码视图时,它显示align属性,但不将文本对齐到右边或中间,不知道为什么。

我的aspx

:

<ajaxToolkit:HtmlEditorExtender EnableSanitization="true" ID="HtmlEditorExtender1" OnImageUploadComplete="HtmlEditorExtender1_ImageUploadComplete" DisplaySourceTab="true" TargetControlID="txtPost" runat="server">
                    <Toolbar>
                        <ajaxToolkit:Undo />
                        <ajaxToolkit:Redo />
                        <ajaxToolkit:Bold />
                        <ajaxToolkit:Italic />
                        <ajaxToolkit:Underline />
                        <ajaxToolkit:StrikeThrough />
                        <ajaxToolkit:Subscript />
                        <ajaxToolkit:Superscript />
                        <ajaxToolkit:InsertOrderedList />
                        <ajaxToolkit:InsertUnorderedList />
                        <ajaxToolkit:CreateLink />
                        <ajaxToolkit:UnLink />
                        <ajaxToolkit:RemoveFormat />
                        <ajaxToolkit:BackgroundColorSelector />
                        <ajaxToolkit:ForeColorSelector />
                        <ajaxToolkit:FontSizeSelector />
                        <ajaxToolkit:Indent />
                        <ajaxToolkit:Outdent />
                        <ajaxToolkit:InsertImage />       
                    </Toolbar>
                </ajaxToolkit:HtmlEditorExtender>
                <asp:TextBox ID="txtPost" runat="server" BackColor="White" CssClass="form-control" TextMode="MultiLine" Rows="30"></asp:TextBox>

我的代码:

protected void HtmlEditorExtender1_ImageUploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{       
    string fullPath = "~/images/postAssets/" + e.FileName;
         // Save upload file to the file system
       HtmlEditorExtender1.AjaxFileUpload.SaveAs(MapPath(fullPath));
       e.PostedUrl = Page.ResolveUrl(fullPath);
}
编辑:

我试过添加:

<httpHandlers>
  <add verb="*" path="AjaxFileUploadHandler.axd"
      type="AjaxControlToolkit.AjaxFileUploadHandler, 
      AjaxControlToolkit"/>
</httpHandlers>

正如其中一个答案所建议的,但我得到了以下错误:

HTTP Error 500.23 - Internal Server Error
An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.
Most likely causes:
•This application defines configuration in the system.web/httpHandlers section.

当调试onImageUploadComplete事件不被触发,但我不知道为什么。

仍然停留在这个家伙上,所以任何帮助都会非常感激,我完全不知所措。

终于有好消息了

我终于让图片上传工作!耶!我在我的网页上添加了以下内容。配置文件:

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
  <add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
</handlers>
<security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="4294967295"/>
  </requestFiltering>
</security>

<httpHandlers>
  <add verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
</httpHandlers>
然而

文本对齐按钮仍然只向左对齐,生成如下html:

<p align="right">This is some test</p>

但它实际上并没有将文本向右对齐?我能不能把它改成:

<p style="text-align:right">This is some text</p>

如果我手动输入html,我可以通过使用上面的html行来使它对齐,但是使用该表单的人对html和css一无所知,并且没有兴趣学习。这就是为什么我一开始就选择了这个控制。也有一种方法,让它自动添加以下文本框之前的任何编辑,其中所有的用户输入将去?:

<div class="row"><div class="col-sm-12">
<!-- html editor extender content goes here -->
</div></div>

我的最后一个要求不是很重要,但文本对齐按钮是至关重要的,所以我肯定需要这些工作

http扩展程序无法上传图像

您需要为此添加配置设置。你可以这样做…

<system.web>
....
<httpHandlers>
    <add verb="*" path="AjaxFileUploadHandler.axd"
      type="AjaxControlToolkit.AjaxFileUploadHandler, 
      AjaxControlToolkit"/>
</httpHandlers>

你可以从这个链接中得到启示,在不同的控件中出现同样的问题。

在这篇文章中,它是更好的解释方式。

希望这对你有帮助。

谢谢