将文件保存到ASP.NET中具有中等信任度的网站中的文件夹中

时间:2013-04-23 08:02:41

标签: asp.net hosting medium-trust

在我的网站中,我通过调用

将图像保存到代码隐藏中的文件夹(照片)中

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

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

*网站托管在hostgator共享计划上。我可以要求多少服务器配置存在限制。

修改

是的,这是一个访问问题,因为不允许解析〜tilda虚拟路径。我希望有人能解决这个问题。

2 个答案:

答案 0 :(得分:1)

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

快速查看Hostgator,他们使用cPanel,从那里有文件管理器部分,如果你去选择'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

答案 1 :(得分: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);