1. 程式人生 > >java 讀取資料庫圖片二進位制流並輸出到jsp頁面

java 讀取資料庫圖片二進位制流並輸出到jsp頁面

最近剛好遇到這個問題,剛開始在網上各種搜尋,看到大量有關該問題的博文。

大量文章有些不敢苟同,希望博主們要寫就認真寫,請不要浪費其他需要幫助的人的時間去驗證你的博文是否正確。

正文如下:

流程說明:

頁面點選某條資訊---》獲取id號---》傳人後臺進行條件查詢----》獲取圖片二進位制流----》轉換成圖片-----》輸出到jsp頁面

注:

1.入參:checkNo;//查詢條件,根據自己的需求來決定是否需要

2.二進位制流只能在本類中傳遞,由class a中到class b會丟失該流(不知是否正確,本人沒有成功。)

--------------------------------action中處理二進位制流----------------------------------------

//在你需要的地方寫下如下方法:

/**
  * 選中某個病人,檢視報告單資訊
  */
public void getReportImageByCheckNo(String checkNo) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
InputStream is = null;
String sql = "select ReportImageBinary from Report where CheckNo = "+ "\'" + checkNo + "\'";
try {
conn = serviceDao.getConnection();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
if(rs.next()){
// 獲取報告單二進位制流
         is = rs.getBinaryStream("ReportImageBinary");
         is.skip(0);
         showReportImage(is);// 將二進位制流顯示至JSP頁面
}
} catch (Exception e) {
e.printStackTrace();
} finally {
serviceDao.CLOSE(conn, ps, rs);
}
}

/**
 * 根據獲取的二進位制流,顯示圖片資訊至JSP頁面
 * @param is
 */
private void showReportImage(InputStream is) {
OutputStream os = null;
byte buf[] = new byte[1024 * 1024*5]; //定義你需要的快取大小
HttpServletResponse res =ServletActionContext.getResponse();
res.setContentType("image/*");設定圖片的型別.jpeg等型別,此處我用了*,也沒報錯,是否通配待驗證。
    try {
while (is.read(buf) != -1) { 
os = res.getOutputStream();  
   os.write(buf);  
}
} catch (IOException e) {
e.printStackTrace();
}  finally {
if(os != null)
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
if(is != null)
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

--------------------------------------以上是後臺處理圖片二進位制,並輸出------------------------------------------

jsp頁面:

<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>報告單資訊</title>
</head>
<body>
<div align="center">
<table border="1" cellpadding="1" cellspacing="1">
<tr>
<td><img src="getReportImageByCheckNo.do?checkNo=<%=request.getParameter("checkNo")%>" align="middle" /> </td> 
</tr>
</table>
<table align="center">
<tr>
<td ><input type="button" onclick="window.history.back()" value="關閉報告"></td>
<td ><input type="button" onclick="LoadPic()" value="載入圖片"></td>
</tr>
</table>
</div>
</body>
</html>

下篇博文整理了,讀取伺服器圖片地址(說明:圖片地址表示該圖片存放在伺服器的硬碟上,比如d:/xxx/xxx/1.jsp),並在jsp頁面展示。

當然此方法也適應讀取本地圖片,顯示在jsp頁面。

相關推薦

java 讀取資料庫圖片二進位制輸出jsp頁面

最近剛好遇到這個問題,剛開始在網上各種搜尋,看到大量有關該問題的博文。 大量文章有些不敢苟同,希望博主們要寫就認真寫,請不要浪費其他需要幫助的人的時間去驗證你的博文是否正確。 正文如下: 流程說明: 頁面點選某條資訊---》獲取id號---》傳人後臺進行條件查詢----》獲

C#從資料庫讀取二進位制生成檔案

下面以圖片檔案為例加以說明。從資料庫表 “圖片儲存”中讀取ID為1的圖片資料並生成圖片檔案。   MySqlConnection conn = new MySqlConnection("Server=localhost;Database=test;charset=utf8;U

【我要程式設計】Java技術手冊之根據圖片連結把圖片轉化為io輸出頁面上的方法

適用場景:A程式只能內網訪問,B程式可以外網訪問,只有B程式可以訪問A程式,使用者需要通過B程式訪問A程式的圖片資源。這是可以使用該方法。 @RequestMapping("/getImageByPath") public void getImageByTomcat(St

java讀取網頁圖片路徑下載到本地

mage -h form read file cti 連接 公司 date() java讀取網頁圖片路徑並下載到本地 最近公司需要爬取一些網頁上的數據,自己就簡單的寫了一個demo,其中有一些數據是圖片,需要下載下來到本地並且 將圖片的路徑保存到數據庫,示例代碼如下: pa

base64格式圖片轉換成二進位制生成圖片檔案

/**  * 將base64格式的字串轉換成二進位制流,並轉換成圖片  */ public  boolean changeBase64ToImage(String base64String){     //base64格式字串為空,返回fal

java 上傳圖片至本地 讀取圖片在網頁中顯示

java 上傳圖片至本地 並讀取圖片在網頁中顯示 程式碼+圖片如下所示 一、程式碼 @Controller public class ImageController { private static Logger logger = LoggerFactory.getLogge

java 讀取資料庫資料下載為Excel

java 讀取資料庫資料並下載為Excel 前臺 html <input type="button" id="javaExcel" value="java下載表格"> script <script> $("#javaExcel").clic

java讀取本地圖片在網頁顯示

做web開發時很多時候需要在網頁上顯示一張圖片,有些圖片是在專案工程中,可以通過專案地址連結引用,但有時候我們也需要使用存放在本地磁碟或者伺服器上的圖片,這時候我們就需要用java去讀取圖片,並在網

java servlet 得到上傳過來的圖片二進位制

工作中做demo的時候碰到的問題,應用伺服器使用webSphere,有些上傳外掛和它有衝突,無奈,只能用input type=file的傳統上傳控制元件+  servlet來實現圖片的上傳,在後臺解析二進位制流,但生成的圖片無法開啟,找到的原因是二進位制的內容的問題,終於解

使用Java讀取網路圖片儲存至本地

使用JAVA讀取網路圖片並儲存至本地 package com.mytest; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStre

java讀取檔案以位元組的形式讀取 然後轉化為位元組陣列,最後經過SHA1加密生成返回16進位制字串存入資料庫

  //根據產品圖片的url返回產品圖片的位元組流陣列   public static final byte[] input2byte(String Url) throws IOException {    InputStream in = null;    ByteArrayOutputStream byt

java讀取資料庫資料,將資料存入陣列返回

// 查詢資料庫內手機線上狀態的裝置資訊,得到的是List<Map<>>格式 // 例如[{udid=7b45c30, version=7.1.1, phonename=MiNote3}, {udid=UYT7N17B16002687, vers

取出資料庫中BASE64編碼後的圖片二進位制資料顯示在JSP頁面上

1.建立一個maven的web專案,加入oracle10/postgresql9.4驅動包依賴(本專案使用兩種資料來源進行測試) 依賴如下 <!-- Oracle驅動包 --> <dependency> <group

讀取資料庫圖片路徑前端顯示

注: Tomcat伺服器只能識別到你的專案之下的目錄,所以絕對路徑不能使用。 如:我圖片儲存在Tomcat的webapp下Person專案中Autoplayimages中,然後儲存路徑見圖。 把圖片路徑置為request.getContextPath()+相對路

java讀取word中的表格存入到mysql資料庫中例項

將D://word_export.doc(word2003)檔案中表格資料讀取出來並存入到資料庫中。表格資料如下圖所示: 20064001 劉景玉 1987-01-25 男 河南商丘 20064002 李會 1986-05-30 男

java讀取excel檔案內容,讀取到的內容寫入到另一檔案中

需要匯入的jar包下載地址https://pan.baidu.com/s/16cTpUfx0KvKkbGYkXAUKMA 程式碼:ReadExcel.java //信1605-3 20163432 張運濤 package domain; import java.io.File; im

java如何用LOG列印日誌輸出資訊到檔案中

使用log4j.jar。log4j 是apache 提供的記錄日誌的jar 檔。 除了這個包外,還需要另一個jar包:.commons-logging.jar commons-logging.jar是配合log4j.jar列印輸出日誌必備的jar包。 下面我們就

機試:反轉一個二進位制輸出反轉之後二進位制的十進位制值是多少

反轉一個二進位制數並輸出反轉之後二進位制的十進位制值是多少。 用一個數組記錄二進位制反轉之後的二進位制值並根據二進位制的定義構造反轉之後的十進位制值。 package InnerClass; public class T { public static void ma

java讀取資料庫中的資料並存儲到excel中去

我們在開發中可能會遇到將資料庫中的資料都取出來儲存到excel中去 在操作過程中用到了poi-3.17.jar包 /** * 構建Excel * map引數 用來儲存資料 儲存的是從Han

從鍵盤輸入某個十進位制小數或整數,轉換成對應的二進位制小數輸出。 (查詢十進位制小數轉換成二進位制小數的演算法,使用迴圈來實現。 最多保留小數位後7位數字即可)演算法

/*演算法:把小數分成兩截,一截是整數,一截是小數。讓整數除以2取餘,倒敘輸出來 打印出二進位制(第一個數為個位,第二個數為10位,即乘以10,第三位數為百位, 即乘以100。。以此類推,即迴圈乘以10),直到除數 為0為止。小數乘以2,取整然後列印2進位制,直到小數部分