2011-12-30 174 views
1

我的代碼是:圖像控件無法顯示圖像

string filename = FileUploader.PostedFile.FileName.Substring(fuImage.PostedFile.FileName.LastIndexOf("\\") + 1); 
if(fuImage.HasFile) 
    { 
     FileUploader.SaveAs(Server.MapPath("Modules/NewUserProfile/UserPic/" + filename)); 
     imgUser.ImageUrl = Server.MapPath("Modules/NewUserProfile/UserPic/" + filename); 
    } 

imgUserasp:Image Control.Image的ID上傳慾望文件夾,但control.What我做錯了這裏的不顯示圖像的圖像?是否有任何回發問題。謝謝。

回答

2

對ImageUrl屬性使用相對路徑。

imgUser.ImageUrl = "Modules/NewUserProfile/UserPic/" + filename; 

或者使用root運算符〜如果Modules文件夾位於web-app的根目錄下。

imgUser.ImageUrl = "~/Modules/NewUserProfile/UserPic/" + filename; 
0

我通常通過先用瀏覽器做一個視圖源,並確保HTML源代碼中的URL是你所期望的,來調試這樣的問題。然後嘗試複製在您的view-source中顯示的url並將其粘貼到瀏覽器的地址欄中,然後查看它是否顯示。

0

我認爲你應該等待圖像完全上傳,然後將圖像路徑設置爲圖像。

同樣在渲染到瀏覽器後,使用Mozilla中的FireBug或Chrome Inspect Elemnt通過查看圖像來檢查圖像是否已正確渲染。如果它損壞,那麼你的圖像路徑是錯誤的。嘗試給相對路徑和檢查。

0
newpic.ImageUrl = Page.ResolveURL("~/Pictures")+filename; 

Server.MapPath返回物理驅動器的位置,這在分配給imageurl時是沒用的。

2

若要運行此代碼,請了解以下內容:

  1. Server.MapPath()被用於獲取物理路徑,如:d:/圖/上傳/ .. 所以這是好主意,讓路徑保存圖像。
  2. 但是,當您獲取圖像以將其綁定到圖像控件時,則必須使用虛擬路徑而不是物理路徑。 虛擬路徑如:localhost/demo/upload/myimage.jpg。