可以使用fileupload控件上传文件但无法访问文件

时间:2012-10-08 15:53:06

标签: asp.net

我可以上传文件(下面的源文件已上传我用rdp检查过)但我无法在浏览器(.docx)中访问它:找不到文件或目录。我该怎么办

protected void Button1_Click(object sender, EventArgs e)
{
    if (FileUpload1.HasFile)
    {
        try
        {
            string filename = Path.GetFileName(FileUpload1.FileName);
            FileUpload1.SaveAs(Server.MapPath("~/") + filename);
            Label1.Text = "Upload status: File uploaded!";
        }
        catch (Exception ex)
        {
            Label1.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
        }
    }

}

3 个答案:

答案 0 :(得分:1)

确保配置为应用程序池标识的用户在您尝试上传到的位置具有写入权限。在这种情况下,它看起来就像是站点根目录。

答案 1 :(得分:1)

通过FTP或RDP登录服务器以确定文件实际存在。

如果文件在服务器上存在,请检查IIS。它可能尚未配置为提供.docx文件。

如果服务器上不存在该文件,那么您很可能有上传问题,很可能是权限。您正在尝试将文件写入网站的根目录。即使权限设置为允许,也不是一个好主意。

如果是上传问题,请在您的根目录下创建一个子目录,并为运行该网站的用户授予该子目录的修改/写入权限。

答案 2 :(得分:1)

  

我可以上传文件(来源如下)   这意味着您可以写入文件路径。

     

我无法在浏览器中访问它   您是否从浏览器指定了正确的文件路径?   你在客户端电脑上安装了单词吗?

出于安全原因,您应该将文件放在根路径之外。然后给它相对文件路径名: “../../filename.docx”并赋予路径写入和读取权限。