2013-12-20 113 views
0

我有一个按钮触发的文件上传控件。当按钮被点击时,我检查目录是否存在,如果没有,则创建它并将文件从fileupload保存到它。运行应用程序时,如果目录不存在,则会成功创建目录,但该文件不会保存到目录并引发未授权的访问例外。我在我的本地机器上工作,网络服务帐户修改了我在其中创建子目录的目录的权限。我检查了创建的文件夹上的NTFS权限,它们从父级继承,因此看起来没问题。我在代码中做错了什么,或者是否有其他帐户需要对目录的权限? (我做了测试,通过暂时给予 '每个人' 修改文件夹的访问,但有相同的错误)Fileupload - 能够创建文件夹,但不能将文件保存到它

代码:

If fuSupport.HasFile Then 

     Dim clockNo As String = lblClockNo.Text.Trim() 

     Dim employeePath As String = "~/SupportingFiles/" & clockNo 

     If Not Directory.Exists(Server.MapPath(employeePath)) Then 
      Directory.CreateDirectory(Server.MapPath(employeePath)) 
     End If 

     Dim filePath As String = Path.GetFileName(fuSupport.PostedFile.FileName) 
     Dim fileName As String = Path.GetFileName(filePath) 
     Dim ext As String = Path.GetExtension(fileName) 

     fuSupport.SaveAs(Server.MapPath(employeePath)) 
End if 

FileUpload控件:

<asp:UpdatePanel ID="upSupportingFiles" runat="server"> 
        <ContentTemplate>        
         <asp:FileUpload ID="fuSupport" runat="server" Width="100%" /><br /> 
         <asp:Label ID="lblUpload" runat="server"></asp:Label> 
         <br /> 
         <table cellpadding="3" cellspacing="0" style="width: 100%"> 
          <tr> 
           <td style="width:50px"> 
            <asp:Button ID="btnUpload" runat="server" CssClass="buttonStyle" Text="Upload File" CausesValidation="False" /> 
           </td> 
           <td style="padding-left:10px"> 
            <asp:UpdateProgress ID="upUpload" runat="server"> 
             <ProgressTemplate> 
              <asp:Image ID="imgAjaxLoader" runat="server" ImageUrl="~/App_Themes/APS/Images/ajax-loader.gif" /> 
             </ProgressTemplate> 
            </asp:UpdateProgress> 
           </td> 
          </tr> 
         </table> 
          <br />       
        </ContentTemplate> 
        <Triggers> 
         <asp:PostBackTrigger ControlID="btnUpload" /> 
        </Triggers> 
       </asp:UpdatePanel> 
+0

你的计算机上的管理员? – Zaki

+0

我是的。尝试右键单击Visual Studio并选择“以管理员身份运行”,仍然是同样的错误 – Jimsan

回答

0

发现问题。

修订

fuSupport.SaveAs(Server.MapPath(employeePath)) 

fuSupport.SaveAs(Server.MapPath(employeePath & "/" & fileName)) 

现在工作正常

相关问题