ファイルのアップロード時に複数のパラメータを送信
10620 ワード
ファイルをアップロードしてサーバに転送するときに、他の値をサーバに転送する方法を理解します~!
(Javascript -> Java)
ファイルをアップロードするボタンを作成します.
formのenctypeとinputtypeを次のように指定します.
ファイルをアップロードすると、fnUpload()が実行されます.
FormDataを生成する場合は、HTMLで指定したフォームIDを入力してファイルを受信します.
💡
ajaxを使用してファイルを転送する場合は、次のデータ型、processData、contentType、enctTypeを指定する必要があります.
コントローラから要求があります.
fileは
(Javascript -> Java)
ソースコード
HTML
ファイルをアップロードするボタンを作成します.
formのenctypeとinputtypeを次のように指定します.
<form id="frmAttachedFiles" class="form-horizontal" enctype="multipart/form-data"">
<div class="btn btn-primary btn-file">
<i class="fa fa-paperclip"></i> Upload테스트
<input type="file" id="upload" name="upload">
</div>
</form>
Javascript
ファイルをアップロードすると、fnUpload()が実行されます.
FormDataを生成する場合は、HTMLで指定したフォームIDを入力してファイルを受信します.
💡
form.append
を使用して必要なパラメータを追加します.ajaxを使用してファイルを転送する場合は、次のデータ型、processData、contentType、enctTypeを指定する必要があります.
// upload 했을 때
$("#upload").on("change", function() {
fnUpload();
});
function fnUpload() {
let form = new FormData($("#frmAttachedFiles")[0]);
form.append("name", "테스트");
let apiUrl = "/uploadTest.do";
$.ajax({
url : apiUrl,
type : "POST",
data : form,
dataType: "json",
processData: false,
contentType: false,
enctype : 'multipart/form-data',
success: function(result) {
Alert("성공");
}
});
}
Java -> Controller
コントローラから要求があります.
fileは
MultipartHttpServletRequest
にインポートでき、パラメータはrequest.getFile()
フォーマットにインポートできます.@PostMapping(value="/uploadTest.do")
public ResponseEntity<RestResultVO> uploadTest(MultipartHttpServletRequest request, HttpServletResponse response) throws Exception
{
MultipartFile file = null;
Iterator<String> iterator = request.getFileNames();
if (iterator.hasNext()) {
file = request.getFile(iterator.next());
}
String name = request.getParameter("name");
...
}
Reference
この問題について(ファイルのアップロード時に複数のパラメータを送信), 我々は、より多くの情報をここで見つけました https://velog.io/@minwest/파일-업로드시-다중-파라미터-전송하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol