好吧,所以不清楚你是如何安装工具包的(nuget,或 zip 下载)。
只需拖放 ajaxfileupload 控件即可正确连接页面。
但是,您还需要页面上的脚本管理器(并且您需要该脚本管理器来实现工具包中的几乎所有控制)。
因此,空白页面的流程如下所示:
如您所见,上面的代码自动将程序集引用添加到页面。
如上所述,该页面确实有一个脚本管理器放入页面中(将脚本管理器放入表单标记之后)。
所以,我们的页面标记现在看起来像这样:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UpLoadTest.aspx.cs" Inherits="Web35.UpLoadTest" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div style="padding:35px;width:40%">
<ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload1" runat="server"
/>
</div>
</form>
</body>
</html>
此时,我们可以(应该)尝试使用属性表来添加上传文件事件。
因此,选择该控件,然后显示属性表。
所以,那么这个:
因此,在大多数情况下,让 vs 为您编写和创建事件存根。
上面创建了这个事件存根,让我们添加一些代码来保存文件。
protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
// One file uploaded, save it
string sFileAndPath = Server.MapPath($@"~\UpLoadFiles\{e.FileName}");
AjaxFileUpload1.SaveAs(sFileAndPath);
}
但是,在上述任何操作之前?
我们必须将以下内容添加到 web.config 中:
在配置部分,添加以下内容:
<handlers>
<add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit" />
</handlers>
<validation validateIntegratedModeConfiguration="false" />
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483648" />
</requestFiltering>
</security>
(您可能在 web.config 中有一个处理程序部分,因此请使用它)。
如你所见,这就是为什么我再次建议你使用nuget来安装工具包。
上述内容应该会使控件现在为您工作。
最终结果是一个非常好的上传控件。它允许无限大小并具有拖放热点。所以,这样说吧: