出力[SPRING]アップロード画像-(3)
JSONに戻ったアップロード結果を画面で確認!ブラウザに をリンクで追加する必要がある.サーバは、このURLを呼び出すときに画像ファイルデータをブラウザに送信する必要がある. これらのタスクを処理するために、Upload Controllerは「/表示?filename=xxx」などのURLを呼び出したときに画像を送信する方法を追加します.
追加されたgetFile()メソッドは、URL符号化されたファイル名をパラメータとして受信し、byte[]としてブラウザにファイルを送信します.
ファイル拡張子は、ブラウザに送信されるMIMEタイプを決定します.probeContentType()はファイルデータを処理し、FILECopyUtilsはファイルデータを処理する.
ブラウザはアップロードの結果にimageURL属性を含めます.(UploadResultDTOのgetImpageURL()
imageURLは、URL符号化されたファイルパスとUUIDなどの情報とを組み合わせた情報であるため、
uploadEx.htmlは、アップロードされた画像を表示するために
showUploadedImages()関数を作成し、Ajaxアップロード後にこれらの画像を呼び出します.
Ajax呼び出し成功後'/display?filename=xxxを呼び出します.
Ajax呼び出し部は次のようになります.
これで、ブラウザの処理が完了すると、画面でファイルを選択し、アップロード後にブラウザでアップロードしたファイルを再度表示できます.
ブラウザの処理が完了したら、画面ファイルを選択し、アップロード後にブラウザでアップロードしたファイルを再参照できます.
*FileCopyUtils.copy
<img>
タグ、/** 업로드 이미지 출력하기
*/
@GetMapping("/display")
public ResponseEntity<byte[]> getFile(String fileName){
ResponseEntity<byte[]> result = null;
try{
String srcFileName = URLDecoder.decode(fileName,"UTF-8");
log.info("filename : "+srcFileName);
File file = new File(uploadPath + File.separator + srcFileName);
log.info("file : "+file);
HttpHeaders header = new HttpHeaders();
//MIME 타입 처리
header.add("Content-Type", Files.probeContentType(file.toPath()));
//File객체를 Path로 변환하여 MIME 타입을 판단하여 HTTPHeaders의 Content-Type에 값으로 들어갑니다.
//파일 데이터 처리 *FileCopyUtils.copy 아래에 정리
//new ResponseEntity(body,header,status)
result = new ResponseEntity<>(FileCopyUtils.copyToByteArray(file),header,HttpStatus.OK);
}catch (Exception e){
log.error(e.getMessage());
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
}
return result;
追加されたgetFile()メソッドは、URL符号化されたファイル名をパラメータとして受信し、byte[]としてブラウザにファイルを送信します.
ファイル拡張子は、ブラウザに送信されるMIMEタイプを決定します.probeContentType()はファイルデータを処理し、FILECopyUtilsはファイルデータを処理する.
ブラウザはアップロードの結果にimageURL属性を含めます.(UploadResultDTOのgetImpageURL()
imageURLは、URL符号化されたファイルパスとUUIDなどの情報とを組み合わせた情報であるため、
<img>
タグを作成するために使用することができる.uploadEx.htmlは、アップロードされた画像を表示するために
<div>
を追加する.showUploadedImages()関数を作成し、Ajaxアップロード後にこれらの画像を呼び出します.
Ajax呼び出し成功後'/display?filename=xxxを呼び出します.
Ajax呼び出し部は次のようになります.
これで、ブラウザの処理が完了すると、画面でファイルを選択し、アップロード後にブラウザでアップロードしたファイルを再度表示できます.
Reference
この問題について(出力[SPRING]アップロード画像-(3)), 我々は、より多くの情報をここで見つけました https://velog.io/@jyyoun1022/SPRING업로드-이미지-출력하기-3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol