AjaxfileUpload错误

时间:2013-06-11 19:07:01

标签: c# asp.net

我正在尝试实现一个简单的ajaxtoolkit文件上载控件,每次单击“上传”时,我得到的都是错误。我尝试在“AjaxFileUpload1_UploadComplete”函数中放置断点但它甚至不会被解雇..(可能是因为上传尚未完成?)我该怎么做才能使它工作?

这是错误: enter image description here

这是我的aspx:

 <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>

       <asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server"
            onuploadcomplete="AjaxFileUpload1_UploadComplete" ThrobberID="myThrobber" MaximumNumberOfFiles="10" AllowedFileTypes="jpg,jpeg"/>

    </div>
    </form>

,这是背后的功能:

protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
        string id = "038191904";
        Directory.CreateDirectory(Server.MapPath("~/App_Data/" + id + "/scanned_docs/"));
        string filePath = "~/Member_Data/" + id + "/images/";
        string path = filePath + e.FileName;
        AjaxFileUpload1.SaveAs(Server.MapPath(filePath) + e.FileName);

        //db1.insert_pic_slide(id, path);

    }

2 个答案:

答案 0 :(得分:26)

这发生在我身上,我做了两件事来解决它:

1)更新您网站的web.config文件,以包含以下条目:

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

2)如果您要上传的页面位于其自己的web.config和拒绝匿名授权规则的文件夹中,请确保添加允许像这样的AjaxFileUploadHandler:

<location path="AjaxFileUploadHandler.axd">
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</location>

答案 1 :(得分:0)

只需为AjaxFileUpload控件添加此疑难解答建议。如果按照此页面上的建议添加了所有web.config语句,但在上传时仍然出现错误,请用Ajax AsyncFileUpload控件替换掉AjaxFileUpload控件。两者之间的代码几乎完全相同,只需一分钟即可将它们换出。

AjaxFileUpload捕获错误,很难找到上载问题的真正原因。 AsyncFileUpload将引发实际错误。

我花了整个下午的时间在AjaxFileUpload上的论坛中进行挖掘,以查找目录权限/临时文件夹的问题。实际上,我遇到了一个数据库错误,在交换到AsyncFileUpload并遇到真正的问题后,我能够修复15分钟。

在FireFox中调试时,AjaxFileUpload引发的错误是:

ajaxfileupload错误引发了上传完成事件并开始新的上传

并且IIS错误是错误500。

请记住,这只是一个数据库错误。我在本地添加了一列,但我忘记将其添加到托管数据库中,因此它对我来说在本地可用,但是在部署时在托管服务器上引发了错误。

需要花15分钟才能修复的工作将近一整天。