teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コードを具体的に記載しました

2021/02/21 09:37

投稿

kohey419
kohey419

スコア11

answer CHANGED
@@ -1,2 +1,29 @@
1
+ ```servlet
2
+ ```
3
+ //fileuploadクラスを使用するにはjarファイルのダウンロードとクラスパスを通す必要があります
4
+ import org.apache.commons.fileupload.FileItem;
5
+ import org.apache.commons.fileupload.FileUploadException;
6
+ import org.apache.commons.fileupload.disk.DiskFileItemFactory;
7
+ import org.apache.commons.fileupload.servlet.ServletFileUpload;
8
+
9
+
10
+
11
+ ↓(postメソッド内の処理)↓
12
+ DiskFileItemFactory factory = new DiskFileItemFactory();
13
+ factory.setSizeThreshold(-1);
14
+ factory.setRepository(new File("動的プロジェクト内の任意のフォルダの一時保存先"));
15
+ ServletFileUpload sfu = new ServletFileUpload(factory);
16
+ for (Object obj : items) {
17
+ FileItem item = (FileItem) obj;
18
+ //item.isFormField()で受け取ったデータがファイルかを判定します。
19
+ if (item.isFormField()) {
20
+ //item.getSize()で受け取った中身が空か判定します
21
+ if(item.getSize() != 0) {
22
+ //空じゃない場合は受け取ります
23
+ 変数名(String型) = item.getString("文字コード(UTF-8等)");
24
+ }
25
+ }
26
+ }
27
+
1
- multipart/form-dataで空文字が送信されたときitem.getSize()で判定できました。
28
+ よって私の質問内容の空文字判定はitem.getSize()で判定できることがわかりました。
2
- 空文字が返されときはsizeが0になりました。
29
+ ご指摘いだいた皆さまあがとうございました。