我是Go和Iris的新手,并且我正在尝试设置API服务器。我想通过CURL上传文件进行测试。但是,当我使用ctx.FormFile("data")
或ctx.UploadFormFile("./uploads")
上传文件时,它将返回multipart: NextPart: EOF
。我怎么解决这个问题?谢谢!
卷曲:
curl -i -v -F 'data=@\"test.txt\"' "http://localhost:8080/upload_file"
main.go:
package main
import (
"github.com/kataras/iris"
"github.com/kataras/iris/middleware/logger"
"github.com/kataras/iris/middleware/recover"
"github.com/kataras/iris/mvc"
"./controllers"
)
func main() {
app := iris.New()
app.Use(recover.New())
app.Use(logger.New())
filesController := new(controllers.FilesController)
filesApp := mvc.New(app)
filesApp.Handle(filesController)
app.Run(iris.Addr(":8080"))
}
filesController.go:
package controllers
import (
"fmt"
"github.com/kataras/iris"
"github.com/kataras/iris/mvc"
)
type FilesController struct {}
func (c *FilesController) BeforeActivation(b mvc.BeforeActivation) {
middleware := func(ctx iris.Context) {
ctx.Application().Logger()
ctx.Next()
}
b.Handle("POST", "/upload_file", "UploadFile", middleware)
}
func (c *FilesController) UploadFile(ctx iris.Context) {
// ctx.FormFile("data")
len, err := ctx.UploadFormFiles("./uploads")
fmt.Println(len, err)
}
执行卷曲翻身
* Expire in 0 ms for 6 (transfer 0x8dd060)
* Expire in 1 ms for 1 (transfer 0x8dd060)
* Expire in 3 ms for 1 (transfer 0x8dd060)
* Expire in 2 ms for 1 (transfer 0x8dd060)
* Expire in 7 ms for 1 (transfer 0x8dd060)
* Expire in 10 ms for 1 (transfer 0x8dd060)
* Expire in 4 ms for 1 (transfer 0x8dd060)
* Expire in 15 ms for 1 (transfer 0x8dd060)
* Expire in 50 ms for 1 (transfer 0x8dd060)
* Expire in 50 ms for 1 (transfer 0x8dd060)
* Trying ::1...
* TCP_NODELAY set
* Expire in 149969 ms for 3 (transfer 0x8dd060)
* Expire in 200 ms for 4 (transfer 0x8dd060)
* Connected to localhost (::1) port 8080 (#0)
> POST /upload_files HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.64.0
> Accept: */*
> Content-Length: 221
> Content-Type: multipart/form-data; boundary=------------------------7f0a822525
fc9e4c
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Set-Cookie: demo_app_cookie=425c2c0b-852d-49ea-967a-09214bcdec18; Path=/; Expi
res=Sun, 12 Jun 2044 03:48:13 GMT; Max-Age=784591442; HttpOnly
Set-Cookie: demo_app_cookie=425c2c0b-852d-49ea-967a-09214bcdec18; Path=/; Expire
s=Sun, 12 Jun 2044 03:48:13 GMT; Max-Age=784591442; HttpOnly
< Date: Fri, 02 Aug 2019 05:44:10 GMT
Date: Fri, 02 Aug 2019 05:44:10 GMT
< Content-Length: 0
Content-Length: 0
<
* Connection #0 to host localhost left intact
UploadFile函数返回
0 multipart: NextPart: EOF
[INFO] 2019/08/02 11:49 200 36.002ms ::1 POST /upload_file