質問編集履歴

2

表示するHTMLとディレクトリ構造を追加しました。

2021/08/23 11:36

投稿

Testament
Testament

スコア1

test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,30 @@
8
8
 
9
9
 
10
10
 
11
+ └─
12
+
13
+ ├─cmd
14
+
15
+ │ └─main.go
16
+
17
+ ├─internal
18
+
19
+ │ └─http
20
+
21
+ │ └─api.go
22
+
23
+ │ └─server.go
24
+
25
+ ├─templates
26
+
27
+ │ └─index.html
28
+
29
+ │ └─show.html
30
+
31
+ └─img
32
+
33
+
34
+
11
35
  ### 該当のソースコード
12
36
 
13
37
 
@@ -124,6 +148,40 @@
124
148
 
125
149
 
126
150
 
151
+ 表示するHTMLを追加しました。
152
+
153
+ ```html
154
+
155
+ <!DOCTYPE html>
156
+
157
+ <html>
158
+
159
+
160
+
161
+ <head>
162
+
163
+ <meta charset="utf-8">
164
+
165
+ <title>画像をある分だけ表示する</title>
166
+
167
+ </head>
168
+
169
+
170
+
171
+ <body>
172
+
173
+ <img src="/img/sample.png">
174
+
175
+ </body>
176
+
177
+
178
+
179
+ </html>
180
+
181
+ ```
182
+
183
+
184
+
127
185
  uploadのコードは以下です。
128
186
 
129
187
  ```Go

1

uploadメソッド部分の追加をいたしました。

2021/08/23 11:36

投稿

Testament
Testament

スコア1

test CHANGED
File without changes
test CHANGED
@@ -124,6 +124,92 @@
124
124
 
125
125
 
126
126
 
127
+ uploadのコードは以下です。
128
+
129
+ ```Go
130
+
131
+ func upload(c echo.Context) error {
132
+
133
+ // Read form fields
134
+
135
+ name := c.FormValue("name")
136
+
137
+ discription := c.FormValue("discription")
138
+
139
+
140
+
141
+ //------------
142
+
143
+ // Read files
144
+
145
+ //------------
146
+
147
+
148
+
149
+ // Multipart form
150
+
151
+ form, err := c.MultipartForm()
152
+
153
+ if err != nil {
154
+
155
+ return err
156
+
157
+ }
158
+
159
+ files := form.File["files"]
160
+
161
+
162
+
163
+ for _, file := range files {
164
+
165
+ // Source
166
+
167
+ src, err := file.Open()
168
+
169
+ if err != nil {
170
+
171
+ return err
172
+
173
+ }
174
+
175
+ defer src.Close()
176
+
177
+
178
+
179
+ // Destination
180
+
181
+ dst, err := os.Create("img/" + file.Filename)
182
+
183
+ if err != nil {
184
+
185
+ return err
186
+
187
+ }
188
+
189
+ defer dst.Close()
190
+
191
+
192
+
193
+ // Copy
194
+
195
+ if _, err = io.Copy(dst, src); err != nil {
196
+
197
+ return err
198
+
199
+ }
200
+
201
+ }
202
+
203
+
204
+
205
+ return c.HTML(http.StatusOK, fmt.Sprintf("<p>Uploaded successfully %d files with fields name=%s and discription=%s.</p>", len(files), name, discription))
206
+
207
+ }
208
+
209
+ ```
210
+
211
+
212
+
127
213
 
128
214
 
129
215
  ### 補足情報(FW/ツールのバージョンなど)