鏈接直接寫入應用程序中的Web文件夾永遠不是一個好主意。我寧願去創建一個ashx處理程序的路線和流回圖像。你可以創建一個文件(例如,getmyimage.ashx.cs),看起來是這樣的:
using System;
using System.Web;
public class getmyimage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
Response.ContentType = "image/png";
Response.WriteFile("x:\myimages\test.png");
Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
getmyimage.ashx將包含這樣的事情:
<% @ webhandler language="C#" class="getmyimage" %>
在這段代碼中,「X:\ myimages \ test.png「就是你想要流回瀏覽器的圖像。您可以將參數添加到getmyimage.ashx url以指定應加載哪個圖像。您還可以修改代碼以便即時生成圖像或沿着這些線條生成圖像。
然後,您可以指向圖像URL中的「getmyimage.ashx」。所以,你的IMAGEURL應該是這樣的:
Image1.ImageUrl = "getmyimage.ashx"
安東尼奧在評論中指出的,你需要看看你想要的緩存選項的類型和設置。默認行爲是始終發送圖像,而不是緩存它。如果你希望緩存的形象,你應該看看下面的帖子:
Caching ASHX Image Response
直接映射到問題的圖像,你可以使用這個:
Image1.ImageUrl = "~/images/test.png"
啊,真不錯。我應該知道這一點。謝謝一堆! – tareqx3 2012-07-24 21:34:46
你不應該像這樣硬編碼路徑。您無法保證您的網站將託管在框(根/虛擬目錄)上。 – Graymatter 2012-07-24 21:34:56
@Graymatter - 會「〜/ images/test.png」而不是?如果不是,在這種情況下你會提出什麼建議? – 2012-07-24 21:39:19