#【Spring Boot】サイズが大きいファイルをaxiosでpostできない
Spring BootでWebアプリケーションを作成しているのですが、 サイズが大きいファイルをaxiosでpostすると以下のエラーが表示されてしまいます。
java.lang.IllegalStateException: The multi-part request contained parameter data (excluding uploaded files) that exceeded the limit for maxPostSize set on the associated connector
以下はリクエストを送信しているコードです。
javascript
1const formData = new FormData(); 2formData.append("video", rawData); //rawDataには動画のデータが格納されています。 3axios.post(routes.videos.store(), formData, { 4 headers: { 5 'content-type': 'multipart/form-data', 6 }, 7}).then(response => { 8 console.log(response); 9});
以下はリクエストを受け付けるコントローラです。
@RequestMapping(value = "videos", method = RequestMethod.POST) public String store(@RequestParam("video") MultipartFile video) { // 具体的な処理は省略します。 }
axiosからではなく、formを用いて送信した場合には、上記のエラーは発生しませんでした。
formを用いて送信した場合のコードは以下です。
html
1<form th:action="@{/videos}" method="post" enctype="multipart/form-data"> 2 <input type="file" name="video"> 3 <input class="btn btn-primary" type="submit" value="アップロード" accept="video/*"> 4</form>
application.propertiesの設定
spring.servlet.multipart.max-file-size=320000000MB spring.servlet.multipart.max-request-size=64000000MB
maxPostSizeを増やすために上記のようにapplication.propertiesを修正してみたのですが、やはり上記のエラーが表示されてしまいました。
よろしくお願いいたします。
追記
・確認に用いているファイルサイズ: 15.7MB
・Spring Bootのバージョン: 2.2.2
・サーブレットコンテナ: Tomcat
・java -version
openjdk version "1.8.0_212" OpenJDK Runtime Environment (IcedTea 3.12.0) (Alpine 8.212.04-r0) OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
・curlで送信した場合
エラーは表示されませんでしたが、ファイルも保存されませんでした。
以下のコマンドで確認を行いました。
sh
1curl -X POST http://localhost:8080/videos -F "video=@/app/src/main/resources/static/videos/sample.mp4"
あなたの回答
tips
プレビュー