我正在嘗試使用代碼。但是,爲什麼網頁從不允許訪問任何本地文件。從我的電腦文件夾在JSP頁面上顯示圖像
意味着,如果你寫
<img src="c:\ImageFolder\Angelica.jpg"/>
在jsp文件
,它不會工作。
爲什麼不是?有沒有辦法讓我從C驅動器檢索圖像並顯示在網頁上?
我正在嘗試使用代碼。但是,爲什麼網頁從不允許訪問任何本地文件。從我的電腦文件夾在JSP頁面上顯示圖像
意味着,如果你寫
<img src="c:\ImageFolder\Angelica.jpg"/>
在jsp文件
,它不會工作。
爲什麼不是?有沒有辦法讓我從C驅動器檢索圖像並顯示在網頁上?
img標籤的src屬性用於指代源的相對路徑或網址,即源可以位於您的Web容器內或由其他網站託管。您不能使用源文件的絕對路徑,因爲您無法引用容器外的文件。
作爲解決方法,您可以創建一個servlet,它可以從Web容器外部加載文件,然後將文件寫入/流式傳輸到您的響應中。您將爲servlet提供文件路徑,並且該servlet將爲您提供該文件。
假設,如果你創建了文件服務名爲「FileServlet」一個servlet,這FileServlet採取「路徑」作爲參數來獲取文件,你img標籤將是這個樣子:
<img scr="FileServet?path=c:\\parentDirectory\file.jpg">
參考: File Servlet by BalusC進行詳細的工作。
謝謝! :) 現在我明白了。但是我遇到了問題。請參閱http://stackoverflow.com/q/21326214/3188711謝謝! – newbieinjavaversion2
謝謝........ – Prashant
> :)Try
<html>
<%@page import="java.io.File"%>
<%@page import="java.io.IOException"%>
<%@page import="java.awt.image.BufferedImage"%>
<%@page import="javax.imageio.ImageIO"%>
<%@page import="java.io.ByteArrayOutputStream"%>
<%@page import="java.math.BigInteger"%>
<%@page import="javax.xml.bind.DatatypeConverter"%>
<%@page import="java.awt.image.BufferedImage"%>
<head>
</head>
<body>
<%
//write image
try{
String imgName="C:\\PATROL_SITE_IMAGES\\17-Jun-2016\\7588519616\\249_R.jpg";
BufferedImage bImage = ImageIO.read(new File(imgName));//give the path of an image
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bImage, "jpg", baos);
baos.flush();
byte[] imageInByteArray = baos.toByteArray();
baos.close();
String b64 = DatatypeConverter.printBase64Binary(imageInByteArray);
%>
<img class="img-responsive" src="data:image/jpg;base64, <%=b64%>"/>
<%
}catch(IOException e){
System.out.println("Error: "+e);
}
%>
</body>
</body>
</html>enter code here
嘗試從d驅動器檢索圖像和checking..Probably u需要在c盤 –
管理員訪問權限有效嗎?讓我們知道 –
@ user3040563它不也行。 – newbieinjavaversion2