問題
Vueから画像ファイルとオブジェクトを送る際、画像が空のときの処理でエラーが出ます。
error
1Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present
画像ファイルが存在すれば、formDataの中にはfileとobjが入り、Javaの/insertに送信されます。
画像とオブジェクトの同時送信については成功しています。
画像を空のまま送信しようとするとエラーが出てしまうので、
空でも送信できるようにしたいです。
Javaで受け取る際の問題なのでしょうか、よろしくお願いします。
コード
vue
1<input type="text" name="hoge" /> 2<input 3 type="file" 4 name="file" 5 accept=".jpg" 6 @change="onFileChange" 7/> 8<button @click="insert()">送信</button> 9 10---------------------略------------------------ 11 12<script> 13methods: { 14onFileChange(e) { 15 var files = e.target.files || e.dataTransfer.files[0]; 16 this.file = files[0]; 17 }, 18insert() { 19 let config = "" 20 let formData = new FormData(); 21 const obj = { 22 id: 1, 23 name: 'hoge', 24 } 25 if(this.file !== "") { 26 formData.append('file', this.file); 27 formData.append('obj',new Blob([JSON.stringify(obj)], {type : 'application/json'})) 28 config = { 29 headers: { 30 'content-type': 'multipart/form-data' 31 } 32 }; 33 } else { 34 formData.append('obj',new Blob([JSON.stringify(obj)], {type : 'application/json'})) 35 } 36 Promise.resolve().then(() => 37 this.$axios.post("/insert", formData, config)
Java
1@RequestMapping("/insert") 2 public Engineer insert(@RequestPart("obj") Form form, @RequestParam("file") MultipartFile uploadFile)
試してみたこと
elseの中でもconfigをつけ、formData.append('file', "")やnullを登録してみたけどできませんでした