【发布时间】:2014-05-07 12:42:33
【问题描述】:
我正在使用 AjaxFileUpload 控件一次上传多个文件并实现拖放功能。它不适用于 IIS7.5 及更高版本。
这是我的代码:
.aspx 页面:
<body>
<form id="form1" runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager2" runat="server">
</asp:ToolkitScriptManager>
<table width="100%">
<tr>
<td width="15%" height="200px">
</td>
<td width="60%" height="200px">
<asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server" OnUploadComplete="AjaxFileUpload1_UploadComplete"
Height="200px" />
</td>
<td width="15%" height="200px">
</td>
</tr>
</table>
<asp:Label ID="lblError" runat="server"></asp:Label>
</form>
.CS 代码:
protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
try
{
string Path = ConfigurationManager.AppSettings["UploadPath"].ToString();
string filePath = Path + Convert.ToString(e.FileName);
AjaxFileUpload1.SaveAs(filePath);
}
catch (Exception ex)
{
}
}
【问题讨论】:
-
它在 IIS 7.5 中对我来说很好,你确定你的功能不会失败吗?放一个断点并逐行执行,可能您的函数无法检索 UploadPath,或者您的 iis 没有写入 UploadPath 位置的权限并且无法将文件保存在那里,也可能文件太大,尝试一个较小的测试
-
它在调试应用程序时工作正常。发布到 loval 系统并通过 IIS 浏览后,上传不起作用。
-
当您从 Visual Studio 文档路径运行调试它时,它具有完全访问权限。当您发布它时,它会转到另一个文件夹。如果“loval”的意思是“localhost”,那么它通常会转到
C:\inetpub\wwwroot\YourWebsite,给予IIS 用户对c:\inetpub\wwwroot的完全访问权限。 IIS 用户可以是 IUSR 或 IUSER 或 NETWORK_USER 或 ASP.NET 或类似的,浏览所有用户并找到其中一个(或更多)并授予他们完全访问权限 -
如果您不介意可以分享您的代码
-
我刚刚测试了你的,仅此而已。您的代码看起来不错,我认为这是权限问题
标签: asp.net ajax file-upload