Java讀取本地檔案,並顯示在JSP檔案中
當我們初學IMG標籤時,我們知道通過設定img標籤的src屬性,能夠在頁面中顯示想要展示的圖片。其中src的值,可以是磁碟目錄上的絕對,也可以是專案下的相對路徑,還可以是網路上的圖片路徑。在存取少量圖片的情況下,採用相對路徑儲存圖片的情況下最方便,也最實用。但是當圖片數量過多時,這種方式就顯的有些掣肘了。
當系統的圖片數量過多時,如果仍把這些圖片當做專案的一部分去釋出,勢必會大大延長專案的釋出時間及更新時間。對於某些對於時限性要求特別高的系統來說,採用相對路徑儲存圖片就是不可取的。特別是系統釋出補丁時,只能採用增量的方式去更新系統。如果採用覆蓋的方式釋出系統,就可能會造成系統圖片檔案的丟失。
基於以上種種原因,很多系統會把大量的圖片存在伺服器的固定目錄下,這樣搭建叢集環境時,就能訪問公共的資源,避免對硬碟空間的浪費,但是問題也就在這裡出現了。我們釋出好的系統訪問磁碟上的固定目錄下的圖片時,出現了沒有許可權訪問的提示。系統為了保證本地安全,不允許直接訪問圖片。
咋一看,上面的問題有的不可思議。但仔細想想,系統這麼做,也確實有道理的。在伺服器上,部署了很多個系統應用。不可能有一個系統的訪問許可權,就可以隨隨便便的訪問磁碟上的檔案。事實上,伺服器上的系統是有許可權讀取其它磁碟路徑下的檔案,只是沒有辦法讓它顯示而已。
要解決上面的問題,我們可以使用流的方式把圖片讀取出來,然後再輸出顯示到HTML頁面中。f廢話了半天,下面關鍵的實現程式碼:
JSP頁面的展示程式碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
< img name = "person.personImg" id = "personImg" alt = "頭像照片" src = "${person.personImg}" style = "width:160px;height:160px;border:1px solid" />
< button id = "btnImg" class = "btn btn-primary" type = "button" title = "上傳圖片" $(function() {
//讀取頭像照片
if($("#oid").val()!=="")
{
$("#personImg").attr("src","favccxx/person/loadUserPhoto? externalPerson.oid = "+$(" #oid").val()+"&Time="+(new Date().getTime()));
$("#personImg").css("display","");
$("#btnImg").css("display","");
}else{
$("#personImg").css("display","none");
$("#btnImg").css("display","none");
}
}
</script> |
採用Struts2框架的java程式碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
@Action (value = "loadUserPhoto" , results = { @Result (name = "success" , type = "stream" , params = {
"contentType" , "image/jpeg" , "inputName" , "imageStream" }) })
public String getImage() {
if (person.getOid() != null ) {
// 設定圖片
try {
Person person = personService.findOne( "oid" , externalPerson.getOid());
FileInputStream is = new FileInputStream(person.getPersonImg());
imageStream = new BufferedInputStream( new FileInputStream(person.getPersonImg()));
} catch (Exception e) {
}
}
return SUCCESS;
}
|
本文轉自 genuinecx 51CTO部落格,原文連結:http://blog.51cto.com/favccxx/1282451,如需轉載請自行聯絡原作者
相關文章
- Java讀取本地檔案內容並輸出Java
- PlY檔案讀取顯示
- Maui 讀取外部檔案顯示到Blazor中UIBlazor
- java中讀取配置檔案Java
- java讀取大檔案並處理Java
- Java從檔案讀入資料並列印到顯示器Java
- servlet能否讀取本地檔案???Servlet
- Java 讀取檔案Java
- 讀取檔案流並寫入檔案流
- java中讀取.properties配置檔案Java
- 讀取本地Excel檔案生成echartsExcelEcharts
- JQuery讀取本地json檔案jQueryJSON
- jsp顯示excel檔案的問題JSExcel
- JAVA 讀取xml檔案JavaXML
- java讀取properties檔案Java
- JBOSS執行JSP檔案,頁面顯示如下資訊JBOSS執行JSP檔案,頁面顯示如下JS
- c# console.write_filestream.readbyte_從檔案中讀取並顯示在控制檯C#
- Swift 下載檔案,並讀取Swift
- ASP.NET Web Pages基礎知識---從文字檔案中讀取並顯示資料ASP.NETWeb
- 文摘:在EJB中讀取XML配置檔案XML
- php如何上傳txt檔案,並且讀取txt檔案PHP
- Java系列:讀取XML檔案JavaXML
- Java高效讀取大檔案Java
- Java中的獲取檔案的物理絕對路徑,和讀取檔案Java
- python解壓並讀取檔案Python
- 用Groovy讀取本地檔案的程式碼
- Golang專案中讀取配置檔案Golang
- mac顯示隱藏檔案,取消顯示隱藏檔案Mac
- Silverlight 讀取嵌入在.xap檔案中的檔案內容
- java呼叫window本地應用程式;讀取TXT型別檔案Java型別
- java檔案相關(檔案追加內容、檔案內容清空、檔案內容讀取)Java
- nodeJS根據檔案字尾名讀取檔案並返回符合檔案總數NodeJS
- Java屬性檔案的讀取Java
- java Properties獲取本地檔案的變數Java變數
- nodejs 讀取excel檔案,並去重NodeJSExcel
- python讀取並寫入mat檔案Python
- Python實用方法之讀取本地檔案Python
- find和ls並用,查詢檔案並顯示大小 .