簡體   English   中英

將圖像上傳到服務器中的文件夾時拒絕訪問路徑

[英]Access denied to path , when uploading image to folder in server

當您要在服務器中的指定文件夾上上傳文件時出現錯誤。 在這里,我將在 storeimg 文件夾中上傳 P6100083.jpg。 當我要上傳時,我收到以下錯誤:

拒絕訪問路徑'C:\inetpub\vhosts\bookmygroups.com\httpdocs\storeimg\P6100083.jpg' is denied.

任何人都可以幫助我...如何使用權限和使用...

我的代碼在上傳圖片時

if (FileUpload1.HasFile)
{           
    float fileSize = FileUpload1.PostedFile.ContentLength;
    float floatConverttoKB = fileSize / 1024;
    float floatConverttoMB = floatConverttoKB / 1024;
    string DirName = "storeimg";
    string savepath = Server.MapPath(DirName + "/");
    DirectoryInfo dir = new DirectoryInfo(savepath);
    // string savepath = "C:\\Documents and Settings\\ssis3\\My Documents\\Visual Studio 2005\\WebSites\\finalbookgroups\\" + DirName + "\\";

    if (fileSize < 4194304)
    {
        string filename = Server.HtmlEncode(FileUpload1.FileName);
        string extension = System.IO.Path.GetExtension(filename).ToUpper();

        if (extension.Equals(".jpg") || extension.Equals(".JPG") || extension.Equals(".JPEG") || extension.Equals(".GIF"))
        {            
            savepath += filename;                       
            FileUpload1.SaveAs(savepath);
        }
    }
}

提前致謝

我沒有成功讓我的上傳或對文件系統的任何寫入操作在 IIS7 上工作。

仍然收到錯誤:訪問路徑被拒絕。

我的 AppPool 在網絡服務下運行。 我已經授予各種帳戶完全控制權(網絡服務、網絡、IIS_IUSR、管理員、用戶、每個人),多次重新啟動網絡服務,研究了所有 IIS7 設置,谷歌搜索了兩個小時,沒有任何效果。

IIS7 和 WS2008 很爛。 對不起這個詞。 有人可以幫忙嗎?

我只是想補充一下:我注意到在上傳的目標文件夾的屬性中有一個名為“只讀(僅適用於文件夾中的文件)”的復選框,並且它已被選中。 它不能取消選中,取消選中並單擊確定按鈕后返回選中。 是 IIS7 保護它嗎?

編輯此消息以添加解決方案:我的管理員已關閉我們服務器上愚蠢的 UAC“安全確認功能”,重新啟動機器,它現在可以工作了。 不需要“網絡服務”或任何其他 IIS 使用的帳戶的“寫入”訪問權限。 When accessing the file system in a ASP.NET web application using the integrated authentication and having the impersonation set to true in its web.confing, the file system seems to be accessed by the authentified end-user's account, not by the Network Service account which the AppPool 正在運行。 (很多人告訴您設置網絡服務權限,但事實並非如此。)因此,您需要為您的特定文件夾上的最終用戶(通常是域用戶:“域\域用戶”)設置“寫入”權限。

哦,是的,上面提到的“只讀(僅適用於文件夾中的文件)”復選框似乎沒有任何效果。 然而微軟表示“某些程序可能在寫入此類文件夾時出現問題,您應該使用命令行語句“attrib -r -s”來擺脫只讀屬性”——但它不起作用。 它將留在那里檢查為灰色。 但不要擔心。 微軟每天都變得越來越傻。

死了,這是一個服務器問題。

您需要驗證您的應用程序池底層用戶是否具有對該目錄的寫入權限。

如果您使用 IIS7,您將擁有一項新功能,可幫助您向該用戶提供自定義寫入,而無需更改用戶。

看這個鏈接: http://www.adopenstatic.com/cs/blogs/ken/archive/2008/01/29/15759.aspx

希望這可以幫助。

首先檢查權限是否啟用,如果沒有,然后 go 到該文件夾,該文件夾必須用於包含文件,然后右鍵單擊文件夾,然后將顯示文件夾屬性,然后單擊安全性,將顯示多個用戶數用戶必須是允許的,然后單擊允許,所有權限都將被激活。

首先,確保您的代碼在本地運行良好(我假設您已經完成了一些事情)。

然后部署到您的 TEST 或 UAT 環境。 如果您在那里遇到問題,那么這是一個配置問題。 確保運行您網站的應用程序池的服務帳戶有權訪問該文件夾。

請使用 C# 方法Path.Combine()來構建您的路徑並避免前導或尾隨 / 和 \ 的問題。

這是服務器問題。 確保您擁有寫入文件的必要權限。

順便說一句,由於您在擴展名上調用ToUpper() ,因此沒有理由測試".jpg"

如果您使用 Plesk Panel,go 到 Plesk Panel 的文件管理器。 列出“httpdocs”中的文件和文件夾。 每個文件和文件夾的最右側都有一個鎖定圖標。 單擊“storeimg”文件夾更改權限。 單擊高級按鈕。 授予這些權限:

  • Plesk IIS WP 用戶 (IWPD_214(your_login_name))
  • Plesk IIS WP 用戶 (IWPD_214(your_login_name))

然后單擊確定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM