在我的网站中,我通过调用
将图像保存到代码隐藏中的文件夹(照片)中 ImageUploadControl.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/Photos/" + Name + ext));
在中等信任中抛出错误'Access not allowed'
。
中等信任保存图像的任何替代方案?由于客户端无需任何身份验证即可访问这些映像,因此该文件夹需要可公开访问,因此我无法将其保存在App_Data中(解决此问题的一个方法)
*网站托管在hostgator共享计划上。我可以要求多少服务器配置存在限制。
修改
是的,这是一个访问问题,因为不允许解析〜tilda虚拟路径。我希望有人能解决这个问题。
答案 0 :(得分:1)
鉴于您使用的是本机.NET控件,我认为这更多是由于文件系统权限而不是对环境的信任。如果您使用的是第三方控件,我会说这是一个信任问题。
快速查看Hostgator,他们使用cPanel,从那里有文件管理器部分,如果你去选择'Photos'
文件夹并选择“更改权限”,请确保文件夹已写入从应用程序访问。
支持此处设置* nix权限的文章: https://support.hostgator.com/articles/cpanel/how-to-change-permissions-chmod-of-a-file
答案 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);