首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ASP.NET 一般處理程序無法顯示圖片的路徑問題解決

     編輯:程式設計綜合問答

現象

同一段 HTML 在記事本打開能正常顯示圖片,但放入 ASP.NET 一般處理程序 中圖片卻不顯示。

原因分析

一般處理程序 執行時的**當前工作目錄**通常是項目根目錄或編譯輸出目錄,而非 .ashx 文件所在目錄。若圖片使用相對路徑,瀏覽器會相對處理程序的 URL 解析,導致找不到資源。

解決方案

  1. 使用絕對路徑:在服務端代碼中將圖片路徑轉為站點根目錄下的絕對路徑(如 /images/photo.jpg)。
  2. 配置虛擬目錄:在 IIS 中將圖片文件夾映射為虛擬目錄,確保 URL 可直接訪問。
  3. 使用 Server.MapPath:在後端讀取文件流時,用 context.Server.MapPath("~/images/photo.jpg") 獲取物理路徑。

代碼示例

public void ProcessRequest(HttpContext context) {
    string virtualPath = "~/images/photo.jpg";
    string physicalPath = context.Server.MapPath(virtualPath);
    if (File.Exists(physicalPath)) {
        context.Response.ContentType = "image/jpeg";
        context.Response.WriteFile(physicalPath);
    } else {
        context.Response.StatusCode = 404;
    }
}

採用絕對虛擬路徑或服務端映射物理路徑,即可解決一般處理程序下圖片不顯示的問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved