2016-02-24 52 views
1

我有一個asp.net項目,我將選定的圖像保存到NewUrunler1文件,我將圖像的路徑保存在我的數據庫中。在本地,它沒有問題,但因爲我把我的項目移動到我的godaddy主機,保存方法給出了一個錯誤。這裏是我的代碼保存圖像:上傳圖像文件到服務器asp.net

protected void UploadImage() 
    { 
     try 
     { 
      HttpPostedFile yuklenecekDosya = FileUploadImage.PostedFile; 
      if (yuklenecekDosya != null) 
      { 
       FileInfo dosyaBilgisi = new FileInfo(yuklenecekDosya.FileName); 
       string yuklemeYeri = Server.MapPath("~/Images/NewUrunler1/" + dosyaBilgisi); 
       FileUploadImage.SaveAs(Path.Combine(yuklemeYeri)); 
      } 
     } 
     catch (Exception e) 
     { 
      failDiv.Visible = true; 
      lblHata.Text = e.ToString(); 
     } 
    } 

當我運行這個我得到一個錯誤從try catch。以下是錯誤:

System.UnauthorizedAccessException: Access to the path 'G:\PleskVhosts\ada-crm.com\httpdocs\Images\NewUrunler1\deneme.png' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode) at System.Web.HttpPostedFile.SaveAs(String filename) at CRM.UrunEkle.UploadImage() 

我新的asp.net很抱歉,如果它是一個簡單的問題,但我在搜索網頁和沒能解決它。感謝您的時間。

+0

錯誤提示您無權訪問試圖將文件保存在服務器上的文件夾。該文件夾是否與您的網站位於同一個文件夾內?如果沒有,請嘗試在那裏移動savepath,看看它是否有幫助。 – andreasnico

+0

從錯誤消息中,您只需提供完整權限即可。您可以通過他們的控制面板來完成,或要求他們給予您的完全許可 –

回答

1

我不確定GoDaddy,但是在典型的IIS託管環境中,您需要確保您嘗試上傳的文件夾具有應用於與網站的ApplicationPool關聯的用戶的寫入權限。

此外,請確保路徑先存在。您可以通過檢查文件夾是否存在,然後創建它們(如果不存在)來做到這一點。

1

這與ASP.NET基本的Windows安全無關。有人已將您的網站設置爲在無權寫入網站的用戶下運行。

這從安全的角度來看是有意義的。現在打電話給你的主機支持,並詢問他們 - 如何改變這個,使網站進程正在運行的用戶可以讀/寫入一個文件夾;)

+0

是的,我解決了這個問題,你是絕對正確的。這是一件令人尷尬的事情,因爲我甚至無法察覺到真正的問題,但我會記住這一點。謝謝:) @TomTom –

0

沒有問題,你的代碼,有Godaddy主機訪問問題。 Goto > Virtual Directory > Directory Access Permission 並設置Full ControlApplication pool group