1

在我的网站中,我通过调用将图像保存到代码隐藏中的文件夹(照片)中

ImageUploadControl.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/Photos/" + Name + ext));

'Access not allowed'这会在中等信任度中引发错误。以中等信任度保存图像的任何替代方法?该文件夹需要可公开访问,因为客户端无需任何身份验证即可访问这些图像,因此我无法将其保存在 App_Data 中(解决此问题的一个方法)

*网站托管在 hostgator 共享计划上。我可以要求服务器配置的数量是有限的。

编辑:

是的,它是一个访问问题,因为解决 ~ tilda,不允许使用虚拟路径。我希望任何人都有解决此问题的方法。

4

2 回答 2

1

好的,因为这是一个路径问题:

https://support.hostgator.com/articles/hosting-guide/lets-get-started/server-path-absolute-path

它是在 *nix 机器上运行 ASP.NET 吗?还是在 Windows Server 和 IIS 上运行?

另外,我认为您可能需要在这种情况下修改您的代码:

string pathRoot = HttpContext.Current.Server.MapPath("~/Photos/");
ImageUploadControl.PostedFile.SaveAs(pathRoot + "/" + Name + ext);

看起来您的原始代码正在尝试使用mapPath包含的不存在的文件路径。

如果您必须拥有一行,这可能会起作用:

ImageUploadControl.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/Photos/") + Name + ext);
于 2013-04-23T08:49:34.977 回答
1

鉴于您使用的是本机 .NET 控件,我认为这更多是由于文件系统权限而不是环境的信任。如果您使用的是第 3 方控件,我会说这是一个信任问题。

快速浏览一下他们使用 cPanel 的 Hostgator,从那里有文件管理器部分,在这里如果您选择'Photos'文件夹并选择“更改权限”,请确保该文件夹具有来自应用程序的写入权限。

编辑


此处支持文章设置 *nix 权限: https: //support.hostgator.com/articles/cpanel/how-to-change-permissions-chmod-of-a-file

并且: https: //support.hostgator.com/articles/specialized-help/technical/my-script-needs-to-use-777-permissions

于 2013-04-23T08:13:25.230 回答