@@ -4,14 +4,14 @@ import (
4
4
"bytes"
5
5
"crypto/md5"
6
6
"fmt"
7
- "github.com/hoisie/web.go"
7
+ "github.com/hoisie/web"
8
+ "io"
8
9
)
9
10
10
- func Md5 (b [] byte ) string {
11
+ func Md5 (r io. Reader ) string {
11
12
hash := md5 .New ()
12
- hash .Write (b )
13
- return fmt .Sprintf ("%x" , hash .Sum ())
14
-
13
+ io .Copy (hash , r )
14
+ return fmt .Sprintf ("%x" , hash .Sum (nil ))
15
15
}
16
16
17
17
var page = `
@@ -30,18 +30,28 @@ var page = `
30
30
<input id="input2" type="text" name="input2"/>
31
31
<br>
32
32
<input type="submit" name="Submit" value="Submit"/>
33
-
33
+ </form>
34
34
</body>
35
35
</html>
36
36
`
37
37
38
38
func index () string { return page }
39
39
40
40
func multipart (ctx * web.Context ) string {
41
+ ctx .Request .ParseMultipartForm (10 * 1024 * 1024 )
42
+ form := ctx .Request .MultipartForm
41
43
var output bytes.Buffer
42
- output .WriteString ("<p>input1: " + ctx .Params ["input1" ] + "</p>" )
43
- output .WriteString ("<p>input2: " + ctx .Params ["input2" ] + "</p>" )
44
- output .WriteString ("<p>file: " + ctx .Files ["file" ].Filename + " " + Md5 (ctx .Files ["file" ].Data ) + "</p>" )
44
+ output .WriteString ("<p>input1: " + form .Value ["input1" ][0 ] + "</p>" )
45
+ output .WriteString ("<p>input2: " + form .Value ["input2" ][0 ] + "</p>" )
46
+
47
+ fileHeader := form .File ["file" ][0 ]
48
+ filename := fileHeader .Filename
49
+ file , err := fileHeader .Open ()
50
+ if err != nil {
51
+ return err .Error ()
52
+ }
53
+
54
+ output .WriteString ("<p>file: " + filename + " " + Md5 (file ) + "</p>" )
45
55
return output .String ()
46
56
}
47
57
0 commit comments