我的帶有 servlets/jsp 的 web Java 專案可以上傳影像(甚至認為不是最好的方法),但是當我嘗試在表格中顯示影像(使用 JSTL)時,只有一個空白影像,就像影像的 url 壞了. 但是當我復制 url 影像并粘貼到瀏覽器的地址欄中時,影像會按預期顯示。網址是這樣的:
file:///c:/Users/user/Documents/NetBeansProjects/Project1/target/Project-1.0-SNAPSHOT//images/image1.png
這是在 JSP 頁面上設定的方式:
<img src="<c:out value="${requestScope.path}" /><c:out value="${test.image}" />" />
提前致謝!
uj5u.com熱心網友回復:
當您在瀏覽器的地址欄中鍵入帶有檔案協議的 URL 時,您的瀏覽器會向您的作業系統詢問該檔案。當您將相同的 URL 放入 HTML 頁面上的 img 標記時,瀏覽器現在會對該檔案發出 HTTP 請求。但是,無法通過 Internet 訪問該檔案。為了做想做的事,你必須讓一個 Servlet 從檔案系統中讀取檔案,然后把它放入一個 HTTP 回應中,當瀏覽器請求影像時可以發送該回應。這是演示代碼。
package rick;
import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
@WebServlet("/serveImage")
public class ServeImage extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("image/jpeg");
FileInputStream fis = new FileInputStream("C:/Users/rick/Documents/RickProfile.jpeg");
fis.transferTo(response.getOutputStream());
}
}
并使用 img 標簽請求它
<img src="serveImage" />
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/456910.html
