【问题标题】:File Upload Permission denied Godaddy Shared hosting文件上传权限被拒绝 Godaddy 共享主机
【发布时间】:2012-05-31 18:26:36
【问题描述】:

我在 godaddy 共享主机上有一个 Web 应用程序。它是一个 asp.net 应用程序。一切正常,但是当我上传一些文件时,它会出现错误“拒绝访问路径'PATH'。”

我尝试了几种方法,例如授予我从 Godaddy 控制面板上传文件的文件夹的完全权限。

我也看到了这个帖子并尝试关注他说:http://forums.asp.net/t/1052417.aspx/1

但没有帮助。

谁能建议我那里有什么问题。它在 IIS 7 下。

【问题讨论】:

  • 请提出一些建议..这应该是一个普遍的问题,我相信我们大多数人都必须面对它......

标签: asp.net file-upload file-permissions


【解决方案1】:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections.Generic;
using System.IO;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindGrid();
        }
    }
    protected void BindGrid()
    {
        string[] filePaths = Directory.GetFiles(Server.MapPath("~/images/"));
        List<ListItem> files = new List<ListItem>();
        foreach (string filePath in filePaths)
        {
            files.Add(new ListItem(Path.GetFileName(filePath), filePath));
        }
        GridView1.DataSource = files;
        GridView1.DataBind();
    }
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            FileUpload1.SaveAs(Server.MapPath("~/images/") + FileUpload1.FileName);
            BindGrid();
        }
        else //enter code here
        {
            Response.Write("Please select file to upload");
        }
    }
    protected void DownloadFile(object sender, EventArgs e)
    {
        string filePath = (sender as LinkButton).CommandArgument;
        Response.ContentType = ContentType;
        Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath));
        Response.WriteFile(filePath);
        Response.End();
    }
    protected void DeleteFile(object sender, EventArgs e)
    {
        string filePath = (sender as LinkButton).CommandArgument;
        File.Delete(filePath);
        BindGrid();
    }
}

【讨论】:

    【解决方案2】:
    1. 打开“文件管理器”
    2. 导航到文件夹并将鼠标悬停在其上
    3. 点击“名称”列右边缘的“向下”小箭头(见图)
    4. 点击“更改权限”
    5. 选择用户(如果您通过站点上传文件,您很可能希望使用“Plesk IIS 工作进程身份帐户”)并根据需要设置权限

    【讨论】:

    • 这行得通。我还想补充一点,您需要向“应用程序池组”用户名授予 WRITE 权限。
    【解决方案3】:

    按照这个: Source - 2

    “使用 Windows 主机帐户设置目录权限”

    http://support.godaddy.com/help/article/6481

    如果不能解决您的问题,您应该向您的托管服务提供商索取访问权限。

    参考: Removing Web Access to Directories on a Windows Hosting Account

    删除该目录的“匿名访问”IIS 设置。这 删除此权限的结果是您只能访问该权限 使用您的主机帐户或通过 FTP 访问目录。你不会 能够通过任何 Web 浏览器访问该目录,无论 您是否了解托管帐户用户名和 密码。

    【讨论】:

    • 您好 Niranjan,感谢您的回复。我已经浏览了这些链接,并且在 Godaddy 管理面板中将文件权限设置为 READ/WRITE。通过 FTP 上传文件正在工作,但是当我使用我的代码上传文件时,它完全失败了。我尝试在网络配置中按照此链接“forums.asp.net/t/1052417.aspx/1”添加模拟设置,但仍然没有运气。我的文件不在根文件夹中。我添加了一个文件夹,我正在尝试将文件存储到此文件夹中。
    • 根据godaddy的支持团队,选择所选文件的权限:Write — Applications can write to this directory. 然后它应该可以工作..
    • 嗨 Niranjan,感谢您在这个问题上的回复和帮助。我已经检查了匿名访问权限。所以我不知道我还能做什么。有什么我可以做的吗?请提出建议。
    猜你喜欢
    • 1970-01-01
    • 2015-01-04
    • 2021-06-23
    • 1970-01-01
    • 2014-12-06
    • 2015-07-11
    • 1970-01-01
    • 2018-08-05
    相关资源
    最近更新 更多