ブロブの画像ファイルは、データベースに格納され、フロントパックのダウンロード
データベースエンティティクラスの画像ファイル
com.cmrh.mspserver.pos.dtoパッケージ; インポートしたjava.io.Serializable; インポートorg.springframework.format.annotation.DateTimeFormat; publicクラスMspPosImage実装はSerializable { プライベートロングのserialVersionUID =最終的な静的-4668256147224146458L; / ** *画像の種類 * / プライベート文字列のimageType; / ** *映像コンテンツ * / プライベートバイト[]またimageValue; / ** *画像シーケンス * / プライベート整数SORTNUM; / ** *作成したフィールドのdb_column:CREATED_USER * / プライベートjava.lang.StringでCreatedUser ; / ** *フィールドのdb_columnを時間を作成します。CREATED_DATEを * / @DateTimeFormat(パターン= "YYYY-MM-DD") プライベートjava.util.Date CreatedDateに。 / ** *更新人フィールドのdb_column:UPDATED_USER * / プライベートjava.lang.StringでupdatedUser。 / ** *更新时间フィールドのdb_column:UPDATED_DATE * / @DateTimeFormat(パターン= "YYYY-MM-DD") プライベートjava.util.Date updatedDate。 / ** *流水号フィールドのdb_column:PK_SERIAL * / プライベートjava.lang.StringでpkSerial。 パブリック文字列getImageTypeが(){ リターンのimageType。 } 公共ボイドsetImageType(文字列のimageType){ this.imageType =のimageType。 } 公共のバイト[] getImageValue(){ imageValueと返します。 } 公共ボイドアクセサsetImageValue(バイト[]またimageValue){ this.imageValue =またimageValue。 } 公共java.lang.StringでgetCreatedUser(){ createdUserを返します。 } 公共ボイドsetCreatedUser(java.lang.StringでcreatedUser){ this.createdUser = createdUser。 } 公共java.util.Date getCreatedDate(){ CreatedDateにを返します。 } 公共ボイドsetCreatedDate(java.util.Date CreatedDateに){ this.createdDate = CreatedDateに。 } 公共java.lang.StringでgetUpdatedUser(){ updatedUserを返します。 } 公共ボイドsetUpdatedUser(java.lang.StringでupdatedUser){ this.updatedUser = updatedUser。 } 公共java.util.Date getUpdatedDate(){ リターンupdatedDate。 } 公共ボイドsetUpdatedDate(java.util.Date updatedDate){ this.updatedDate = updatedDate。 } 公共java.lang.StringでgetPkSerial(){ pkSerialを返します。 } 公共ボイドsetPkSerial(java.lang.StringでpkSerial){ this.pkSerial = pkSerial。 } パブリック整数getSortNum(){ SORTNUMを返します。 } 公共ボイドsetSortNum(整数SORTNUM){ this.sortNum = SORTNUM。 } }
ダウンロードSQL
<! -获取影像信息- > <。SELECT ID = "getMspPosImageList" parameterClass = "java.util.Listに" resultClassを= "com.cmrh.mspserver.pos.dto.MspPosImage"> mpi.PK_SERIAL pkSerial、MPIを選択します。 IMAGE_TYPEのimageType、mpi.IMAGE_VALUEまたimageValue、mpi.SORT_NUM SORTNUM FROM MSPDATA.MSP_POS_IMAGEのMPI mpi.PK_SERIAL INは <= "("クローズ= ")"連動=オープン反復""> #pkSerial []# </反復> ORDER mpi.CREATED_DATE、mpi.SORT_NUM BY </ select>の
リクエストハンドラクラス
公共 のボイドDownloadImage(HttpServletResponseの応答、文字列imageIds){ ZipOutputStream ZOS = ヌル; 試み{ 文字列nowTimeString = DateUtil.millis2String(のSystem.currentTimeMillis()); // ファイルの名前を 文字列downloadFilename = nowTimeString + ".zipファイル" ; // 変換中国語がそうすること化け生成することができる downloadFilename = URLEncoder.encode(downloadFilename、「UTF-8」); // 返されたオブジェクトの応答がファイルストリームで指定 response.setContentType(「アプリケーション/オクテットのストリーム」); //ダウンロードファイル名]ボックスには、デフォルトの表示に配置された response.setHeader( ";ファイル名=添付ファイル" + "のContent-処分"、downloadFilenameを); ZOS = 新しい新しいZipOutputStream(response.getOutputStream()); IF (StringUtils.isNotEmpty(imageIds)) { リスト <文字列> IDLIST =は、Arrays.asList(imageIds.split( "" )); リスト <MspPosImage>イメージ= debunkService.getMspPosImageList(IDLIST); IF(!{CollectionUtils.isEmpty(イメージ)) のための(int型 I = 0;私はimages.sizeを()<; I ++は){ 入力ストリームFIS = CommonUtil.byte2Input(images.get(I).getImageValue())。 zos.putNextEntry(新しいまたはZipEntry( "第" +(I + 1)+ "张截图.JPG" )); バイト []バッファ= 新しい バイト [1024 ]; INT R = 0 。 一方、(!(R = fis.read(バッファ))= -1 ){ zos.write(バッファ、 0 、R)。 } fis.close()。 } } } } キャッチ(IOExceptionを電子){ e.printStackTrace(); } 最後に{ 場合(!ZOS = ヌル){ しようと{ )(zos.flush。 zos.close(); } キャッチ(IOExceptionを電子){ e.printStackTrace(); } } } }