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
- Maui 讀取外部檔案顯示到Blazor中UIBlazor
- java讀取大檔案並處理Java
- java中讀取配置檔案Java
- Java 讀取檔案Java
- 讀取檔案流並寫入檔案流
- spark直接讀取本地檔案系統的檔案Spark
- 讀取本地Excel檔案生成echartsExcelEcharts
- python解壓並讀取檔案Python
- php如何上傳txt檔案,並且讀取txt檔案PHP
- Java系列:讀取XML檔案JavaXML
- Java中的獲取檔案的物理絕對路徑,和讀取檔案Java
- ASP.NET Web Pages基礎知識---從文字檔案中讀取並顯示資料ASP.NETWeb
- nodeJS根據檔案字尾名讀取檔案並返回符合檔案總數NodeJS
- nodejs 讀取excel檔案,並去重NodeJSExcel
- mac顯示隱藏檔案,取消顯示隱藏檔案Mac
- java檔案相關(檔案追加內容、檔案內容清空、檔案內容讀取)Java
- Golang專案中讀取配置檔案Golang
- 用Groovy讀取本地檔案的程式碼
- Python實用方法之讀取本地檔案Python
- Java讀取Json檔案工具類JavaJSON
- java呼叫window本地應用程式;讀取TXT型別檔案Java型別
- phpSpreadsheet 讀取圖片並另存為檔案PHP
- Python中Spark讀取parquet檔案並獲取schema的JSON表示PythonSparkJSON
- 任意檔案讀取
- Python讀取大量Excel檔案並跨檔案批次計算平均值PythonExcel
- Java實時讀取日誌檔案Java
- Java 讀取txt檔案生成Word文件Java
- 用 ABAP 讀取本地文字檔案內容試讀版
- Springboot整合MongoDB儲存檔案、讀取檔案Spring BootMongoDB
- LIUNUX如何擷取txt檔案中的內容,並建立新檔案UX
- 說說在 Python 中,如何讀取檔案中的資料Python
- go配置檔案讀取Go
- python讀取大檔案Python
- springboot讀取配置檔案Spring Boot
- 用友任意檔案讀取
- viper 讀取配置檔案
- matlab讀取npy檔案Matlab
- python小白檔案讀取Python