質問編集履歴
2
表示するHTMLとディレクトリ構造を追加しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,6 +3,18 @@
|
|
3
3
|
Go言語で画像をアップロードして表示しようとしていましたが、表示の仕方が分かりません。
|
4
4
|
一度アップロードした写真はダウンロードされてそれを表示しようかと考えております。
|
5
5
|
|
6
|
+
└─
|
7
|
+
├─cmd
|
8
|
+
│ └─main.go
|
9
|
+
├─internal
|
10
|
+
│ └─http
|
11
|
+
│ └─api.go
|
12
|
+
│ └─server.go
|
13
|
+
├─templates
|
14
|
+
│ └─index.html
|
15
|
+
│ └─show.html
|
16
|
+
└─img
|
17
|
+
|
6
18
|
### 該当のソースコード
|
7
19
|
|
8
20
|
```go
|
@@ -61,6 +73,23 @@
|
|
61
73
|
</html>
|
62
74
|
```
|
63
75
|
|
76
|
+
表示するHTMLを追加しました。
|
77
|
+
```html
|
78
|
+
<!DOCTYPE html>
|
79
|
+
<html>
|
80
|
+
|
81
|
+
<head>
|
82
|
+
<meta charset="utf-8">
|
83
|
+
<title>画像をある分だけ表示する</title>
|
84
|
+
</head>
|
85
|
+
|
86
|
+
<body>
|
87
|
+
<img src="/img/sample.png">
|
88
|
+
</body>
|
89
|
+
|
90
|
+
</html>
|
91
|
+
```
|
92
|
+
|
64
93
|
uploadのコードは以下です。
|
65
94
|
```Go
|
66
95
|
func upload(c echo.Context) error {
|
1
uploadメソッド部分の追加をいたしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -61,7 +61,50 @@
|
|
61
61
|
</html>
|
62
62
|
```
|
63
63
|
|
64
|
+
uploadのコードは以下です。
|
65
|
+
```Go
|
66
|
+
func upload(c echo.Context) error {
|
67
|
+
// Read form fields
|
68
|
+
name := c.FormValue("name")
|
69
|
+
discription := c.FormValue("discription")
|
64
70
|
|
71
|
+
//------------
|
72
|
+
// Read files
|
73
|
+
//------------
|
74
|
+
|
75
|
+
// Multipart form
|
76
|
+
form, err := c.MultipartForm()
|
77
|
+
if err != nil {
|
78
|
+
return err
|
79
|
+
}
|
80
|
+
files := form.File["files"]
|
81
|
+
|
82
|
+
for _, file := range files {
|
83
|
+
// Source
|
84
|
+
src, err := file.Open()
|
85
|
+
if err != nil {
|
86
|
+
return err
|
87
|
+
}
|
88
|
+
defer src.Close()
|
89
|
+
|
90
|
+
// Destination
|
91
|
+
dst, err := os.Create("img/" + file.Filename)
|
92
|
+
if err != nil {
|
93
|
+
return err
|
94
|
+
}
|
95
|
+
defer dst.Close()
|
96
|
+
|
97
|
+
// Copy
|
98
|
+
if _, err = io.Copy(dst, src); err != nil {
|
99
|
+
return err
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
|
+
return c.HTML(http.StatusOK, fmt.Sprintf("<p>Uploaded successfully %d files with fields name=%s and discription=%s.</p>", len(files), name, discription))
|
104
|
+
}
|
105
|
+
```
|
106
|
+
|
107
|
+
|
65
108
|
### 補足情報(FW/ツールのバージョンなど)
|
66
109
|
|
67
110
|
Windows10,VScode,Chrome
|