ファイルアップロード)FormDataの作成

8313 ワード

<body>
	<input class="multi-files" type="file" name="uploadFiles" multiple="multiple">
  	<button class="uploadBtn" >upload</button>

  <script>
	$('.uploadBtn').click(function(){
    	var formData = new FormData;
    	var inputFile = $('.multi-files');
    	var files = inputFile[0].files;
    
    	for(var i = 0; i < files.length; i++){
            console.log(files[i]);
            formData.append("uploadFiles", files[i]);                           
            }
                                        
//실제 업로드 부분
$.ajax({
       📌uri: '/uploadAjax', //컨트롤러에서 PostMapping하는 메서드의 url
       📌processData: false, //
       📌contentType: false, //multipart/form-data 타입 사용하기 위함
       data: formData,
       type: 'POST',
       dataType: 'json',
       success: function(result){
       	console.log(result);
        //나중에 화면 처리
       },
       error: function(jqXHR, textStatus, errorThrown){
       	console.log(textStatus);
       }
                                       
    })
    
    });                                
	</script>
</body>
  

👉jQueryセクション

  • formData.append(name, value); 追加フィールドの名前と値を使用します.
  • (key,value)概念
  • 名前(キー)が
  • の場合、既存の値(値)の後に新しい値(値)が追加されます.
  • 参考資料-FrormData。append()

    👉ajaxオプションの設定

  • processData:falseと宣言された場合formDataを文字列
  • に変換しない
  • contentType:falseと宣言された場合、multipart/form-dataにコンテンツタイプヘッダを送信できます.
    参考資料