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

質問編集履歴

1

コードを追記しました

2016/01/04 00:07

投稿

yamanoharu0129
yamanoharu0129

スコア47

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,66 @@
1
1
  ファイル(FileItem)とファイル名(String)を一つのエンティティに登録したいのですが、ファイル名も登録しようとすると、not foundが表示され、ファイルしか登録されません。同じメソッド内で、
2
2
  dataStore.put(filesItem);
3
3
  dataStore.put(name);
4
- では登録されないのでしょうか?
4
+ では登録されないのでしょうか?
5
+
6
+
7
+ ```
8
+ index.jsp
9
+ <form class="postingform" action="upload" method="post" enctype="multipart/form-data">
10
+ 作品の情報を入力してください。<br>
11
+ ファイル選択:<input type="file" name="material"><br>
12
+ ファイル名:<input type="text" name="title"><br>
13
+ <input type="submit" value="アップロード">
14
+ </form>
15
+ ```
16
+ ```
17
+ MaterialUpload
18
+ public class MaterialUploadService {
19
+ public String saveMaterial(FileItem fileItem){
20
+ /*ファイル*/
21
+ Key materialKey = Datastore.allocateId(Material.class);
22
+ String contentType = fileItem.getContentType();
23
+ String idStr = Long.toString(materialKey.getId());
24
+ String extStr = fileItem.getShortFileName().split("\\.")[1];
25
+ String url = idStr + "." + extStr;
26
+ byte[] materialData = fileItem.getData();
27
+ Material material = new Material();
28
+ material.setKey(materialKey);
29
+ material.setContentType(contentType);
30
+ material.setBlob(new Blob(materialData));
31
+ System.out.println(url);
32
+ Datastore.put(material);
33
+ Datastore.put(title);
34
+ return url+"アップロードしました";
35
+ }
36
+
37
+ }
38
+ ```
39
+ ```
40
+ UploadController
41
+ public class UploadController extends Controller {
42
+ private MaterialUploadService MaterialUploadService = new MaterialUploadService();
43
+ @Override
44
+ public Navigation run() throws Exception {
45
+ //ファイルアップロード
46
+ FileItem fileItem = requestScope("material");
47
+ String title = requestScope("title");
48
+ String result = MaterialUploadService.saveMaterial(fileItem);
49
+
50
+ sessionScope("message",",p>"+result+"</p>");
51
+ return redirect(basePath);
52
+ }
53
+ }
54
+ ```
55
+ ```
56
+ Materiaru.java
57
+ @Attribute(primaryKey = true)
58
+ private Key key;
59
+ @Attribute(version = true)
60
+ private Long version;
61
+ private String url;
62
+ private String contentType;
63
+ private Blob blob;
64
+ private String title;//ファイル名
65
+
66
+ ```