如果您需要將影像存儲Web應用程序文件夾外,你需要有什麼辦法可以提供圖像用戶的一個解決方案是使用httphandler。
這裏是你的佈局:
<asp:DataList runat="server" ID="dtlist">
<ItemTemplate>
<img src="GetImage.ashx?fileName=<%#Eval("Name")%>" alt="Image"/>
</ItemTemplate>
</asp:DataList>
這是你的代碼:
if (!IsPostBack)
{
var dir = new DirectoryInfo("D:\\Images\\");
var files = dir.GetFiles("*.png");
var listItems = new ArrayList();
foreach (FileInfo info in files)
{
listItems.Add(info);
}
dtlist.DataSource = listItems;
dtlist.DataBind();
}
這裏是HTTP處理程序GetImage.ashx:
public void ProcessRequest(HttpContext context)
{
var root = "D:\\Images";
var fileName = context.Request.Params["fileName"];
if (String.IsNullOrEmpty(fileName)) RenderInvalidRequestMessage(context);
var fullFilePath = root + "\\" + fileName;
//var dir = (new FileInfo(fullFilePath)).Directory;
//if (dir == null || dir.FullName != root) RenderInvalidRequestMessage(context);
if (!File.Exists(fullFilePath)) RenderInvalidRequestMessage(context);
//TODO: Add validation and any security check.
context.Response.ContentType = "image/png";
context.Response.WriteFile(fullFilePath);
}
private void RenderInvalidRequestMessage(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("File not found.");
context.Response.End();
}
在'pstRZ'存在哪些項目? jpeg圖像?那些圖片給網頁datalist? – zey
是的所有都是JPEG圖像 – user3201772
這段代碼是要綁定項目中存在的文件夾,但它不工作時,我必須綁定驅動器的數據 – user3201772