2017-03-23 183 views
1

圖像未從asp.net 中的給定路徑加載,這裏是場景。我已經上傳一個圖像到文件夾使用asp.net,並插入它的SQL Server數據庫的路徑,但是當我嘗試從我的asp應用程序的路徑中獲取圖像「路徑是正確的」,但圖像加載失敗。沒有錯誤。圖片不能從路徑加載

這裏是上傳數據

if (FileUpload1.HasFile && TextArea1.Value != null) 
    { 
     string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName); 
     string path = Server.MapPath("/admin/images/" +fileName); 
     FileUpload1.PostedFile.SaveAs(Server.MapPath("/admin/images/" + fileName)); 
     //Response.Write("<script>alert('" + path + "');</script>"); 
     string ta1 = TextArea1.Value; 
     string sql = "UPDATE homep SET img = '" + path + "', description= '" + ta1.Replace("'", "''") + "' WHERE id = 1;"; 
     cmd = new SqlCommand(sql, con); 
     if (cmd.ExecuteNonQuery() > 0) 
     { 
      Response.Write("<script>alert('Updation Success ..!');</script>"); 
     } 
    } 

這裏的代碼用於獲取數據

dr.Read(); 
    Response.Write("<img src='"+dr["img"].ToString()+"' class='img-responsive'/>"); 
    dr.Close(); 

This Image shows final output as i am getting content but not getting image from path

回答

1

您服務上的服務器硬盤的物理路徑的代碼到客戶端瀏覽器無法打開的瀏覽器。你應該建立一個action方法來提供圖像,並且在圖像中的src =「」中爲url提供這個actionmethod。

例如:

Response.Write("<img src='/Serveimage/?path="+dr["img"].ToString()+"' class='img-responsive'/>"); 

,然後創建 'ServeImage' actionmethod:

public FileResult ServeImage(string path) 
{ 
    var bytes = System.IO.File.ReadAllBytes(path); 
    return File(bytes, "image/png"); 
} 
+0

感謝您的解決方案,但我使用數據庫檢索路徑。所以我可以把這個方法,我從數據庫 –

+0

是的路徑。在圖像的src中,您仍然像在初始代碼中那樣指定路徑。該路徑作爲URL參數傳遞(參見?path =)到我建議的actionmethod。此方法將從硬盤讀取文件並將其提供給瀏覽器。 – middelpat

+0

非常感謝,我完成了。 –

0

使用〜這樣的:

Server.MapPath("~/admin/images/" +fileName) 
+0

感謝您的解決方案,我已經做到了,但仍然無法正常工作。 –

+0

確保您的圖像路徑文件夾是正確的 –

+0

物理路徑有錯誤,我正在給物理路徑,但虛擬路徑是必需的完成從上面發佈的答案。 –