AjaxFileUpload按钮'上传'失败

时间:2013-07-17 14:39:37

标签: c# asp.net ajax ajaxcontroltoolkit

我做了很多搜索,尝试了很多不同的选择。甚至没有看到任何其他人遇到类似问题。

我将以下代码放入我的页面,元素在页面上反应良好。对于'ToolKitScriptManager,我已经尝试了常规以及下面显示的常规。都没有工作。

        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></asp:ToolkitScriptManager>
        <asp:AjaxFileUpload ID="inpFileUpload" runat="server" OnUploadComplete="inpFileUpload_UploadComplete" MaximumNumberOfFiles="3" AllowedFileTypes="jpg,jpeg,doc,png" />

我有元素的以下背景代码

    protected void inpFileUpload_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
        string path = @"\\NetworkPath\UploadedFiles\" + e.FileName;
        inpFileUpload.SaveAs(path);
    }

然而,它没有给我任何错误,或者说明任何可能出错的信息。我已经跟踪了我可以在这个元素上找到的每个教程,但没有一个能够解决这个问题。

我按浏览找到一个文件,选择一个/多个文件,一切似乎都很好,文件出现在上传列表中。

但是,当我单击此AjaxFileUpload元素附带的“上传”按钮时,没有任何反应。有时您可以在“上传”按钮上看到红色,但它会立即再次返回“上传”蓝色样式。不会上传所选的文件,也不会上传按钮按下时没有做任何事情,除非非常快速地改变按钮的外观。

不确定我做错了什么,或者我错过了什么......

更新

感谢Matthew的帮助,学到了一个javascript错误控制台,当按下“上传”按钮时,它会返回“Uncaught Exception:Failed to started upload”

4 个答案:

答案 0 :(得分:1)

我无法为你解决问题,但我可以告诉你从哪里开始。

首先,您使用的浏览器是什么?这可能很重要,特别是如果你使用旧版本的IE。

之后,这里有一些使用和调试AJAX的技巧:

  1. 如果它不起作用,第一步是检查Javascript错误控制台。在IE和Chrome中,按F12打开开发工具。在Firefox中,按Ctrl + Shift + J打开JS错误控制台。如果您使用的是Firefox,我建议您使用“Web Developer”扩展程序和Firebug
  2. 如果错误控制台中没有错误,请使用一个好的HTTP调试器/代理(我喜欢Fiddler)来确保您期望的AJAX请求是该页面正在进行的AJAX请求。 (如果你还不熟悉HTTP,这是开始学习的好方法。是的,你确实需要知道这些东西。)
  3. 在多个浏览器中测试它以查看它是否是特定于浏览器的问题。

答案 1 :(得分:1)

我想你可能会在<system.web>部分的web.config中遗漏这个:

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

在链接处找到:http://ajaxcontroltoolkit.codeplex.com/SourceControl/latest#SampleWebSites/AjaxControlToolkitSampleSite/Web.config

答案 2 :(得分:1)

看起来我解决了它。当我加载页面时,它与我的Request.QueryString [“id”]有关。由于某种原因,它重新加载页面并丢失返回null的QueryString,这反过来导致一切都搞乱文件上传。

当我将一个硬编码变量指定为QueryString [“id”]时,上传工作正常。但是当保持正常状态以获取QueryString时,它将失败并返回null。

我还没有解决为什么它抓住null而不是我的身份证号码,但是我在身份证号码中进行了硬编码,上传工作几乎证实了这就是问题。

如果有人可能有关于为什么我的QueryString在文件上传时返回null的信息会很棒!哈哈

<强> ANSWER

所以做了一些研究,显然这是AjaxToolKit的一个问题,而不是我一直在做的任何事情。我从https://ajaxcontroltoolkit.codeplex.com/workitem/27149下载了链接,并使用了更新的javascript代码更改的DLL,一切都开始正常工作。

从我发现文件上载不解析URL中已经放置的查询字符串,因此它用它所需的内容替换它们并继续发生许多错误。

让我们希望他们能够获得更新版本。

答案 3 :(得分:0)

将以下行添加到配置部分下的web.config文件:

<configuration>
<system.webServer>
<handlers>
<add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" Type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
</handlers>     
</system.webServer>`
</configuration>