[英]Save file to a folder in the website in medium trust in ASP.NET
在我的網站上,我通過調用以下代碼將圖像保存到文件夾(照片)中
ImageUploadControl.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/Photos/" + Name + ext));
在中等信任中拋出錯誤'Access not allowed'
。 還有其他以中等信任度保存圖像的方法嗎? 該文件夾需要公開訪問,因為客戶端無需任何身份驗證即可訪問這些圖像,因此我無法將其保存在App_Data中(此問題的一種解決方法)
*網站托管在hostgator共享計划上。 我可以要求多少服務器配置是有限制的。
編輯:
是的,這是一個訪問問題,因為解決〜tilda,不允許使用虛擬路徑。 我希望任何人都有解決此問題的方法。
考慮到您使用的是本機.NET控件,我認為這更多是由於文件系統權限而不是環境的信任。 如果您使用的是第三方控件,那將是一個信任問題。
快速瀏覽Hostgator時,他們使用cPanel,從那里開始是文件管理器部分,在這里,如果要選擇'Photos'
文件夾並選擇“ Change Permissions”,請在此處確保該文件夾具有應用程序的寫訪問權限。
用於設置* 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
好的,因為這是路徑問題:
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.