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

JSP 上傳圖片到資料庫 FileNotFoundException 排查

     編輯:程式設計綜合問答

錯誤堆疊

java.io.FileNotFoundException: bg.jpg (系統找不到指定的檔案。)
at java.io.FileInputStream.open(Native Method)
at org.apache.jsp.ceshi.testimage_jsp._jspService(testimage_jsp.java:121)

根因

程式碼使用相對路徑 new FileInputStream("bg.jpg"),**工作目錄不是 Web 應用根目錄**(通常是啟動腳本目錄或 bin),導致找不到檔案。

解決方法

  1. 使用絕對路徑:
    String realPath = getServletContext().getRealPath("/images/bg.jpg");
    FileInputStream fis = new FileInputStream(realPath);
  2. 或用 ServletContext 取資源流(不依賴實體檔案):
    InputStream is = getServletContext().getResourceAsStream("/images/bg.jpg");
  3. 調試技巧:在代碼中印出 new File("bg.jpg").getAbsolutePath(),確認 JVM 實際尋找的路徑。

最佳實踐

  • 上傳檔案應用 **Commons FileUpload / Servlet 3.0 request.getPart()** 取得 InputStream 直接寫入 DB,避免落地臨時檔。
  • 資料庫儲存圖片建議用 BLOB / BYTEA,或存檔案系統只存路徑。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved