2015-04-28 101 views
0

我的代碼有什麼問題?上傳圖片並在圖片控件中顯示

protected void Button1_Click(object sender, EventArgs e) 
{ 
    string stream = FileUpload1.FileName; 
    string sub = stream.Substring(stream.LastIndexOf(".")+1); 
    if(FileUpload1.HasFile) 
    { 
     if (sub == "jpg" || sub == "jpeg" || sub == "png") 
     { 
      string path = Server.MapPath("./Image/" + stream); 
      FileUpload1.SaveAs(path); 
      Image1.ImageUrl = path; 
      Image1.DataBind(); 
     } 
     else 
     { 
      Response.Write("Please insert valid Image"); 
     } 
    } 
} 
+2

不要在用戶點開始路徑。 – Mairaj

+0

這是一個詭計的問題嗎?如果沒有,那麼總是解釋你得到的錯誤以及爲什麼你的代碼應該有問題。 –

+0

點擊後,我沒有得到任何錯誤,圖像保存在路徑中正確,但在圖像控制和圖像控制中加載的圖像沒有顯示任何東西 – kamal

回答

0

刪除路徑字符串開頭的點(。)。

讓這樣的:

string path = Server.MapPath("/Image/" + stream); 

另外,還要確保路徑是正確的,並且文件被上傳。如果需要,您可以嘗試使用相對的Url。

希望這會有所幫助。具有以下

Image1.ImageUrl = path; 

+0

它不起作用 – kamal

+0

你得到什麼錯誤,以及在哪一行代碼? –

+0

執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。 – kamal

0

替換此

Image1.ImageUrl = string.Format("{0}://{1}/Image/{2}", 
HttpContext.Current.Request.Url.Scheme, 
HttpContext.Current.Request.Url.Authority, stream); 
0

變化的ImageUrl是一個互聯網網址,而不是物理路徑。

Image1.ImageUrl = "/Image/" + stream; //path; 
//Image1.DataBind(); <-- remove it 

P.S.

您也可以使用System.IO.Path.GetExtension(stream)來獲得擴展名,如「.jpg」(帶有前導點)。