我做了很多搜索,尝试了很多不同的选择。甚至没有看到任何其他人遇到类似问题。
我将以下代码放入我的页面,元素在页面上反应良好。对于'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”
答案 0 :(得分:1)
我无法为你解决问题,但我可以告诉你从哪里开始。
首先,您使用的浏览器是什么?这可能很重要,特别是如果你使用旧版本的IE。
之后,这里有一些使用和调试AJAX的技巧:
答案 1 :(得分:1)
我想你可能会在<system.web>
部分的web.config中遗漏这个:
<httpHandlers>
<add verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>
</httpHandlers>
答案 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>