接受文件为帖子并使用其他API上传

时间:2019-07-03 07:21:21

标签: go gin-gonic

我必须从前端用户那里获取文件作为帖子,然后将该文件上传到Egnyte。 我正在使用egnyte api上传。为此,我必须先将文件上传到某个目录,然后从该目录上传到Egnyte api。相反,我想跳过将文件上传到某个目录,直接将其传递给Egnyte api。

代码

v1.POST("/upload", func(c *gin.Context) {
            // single file
            file, ferr := c.FormFile("file")
            if ferr != nil {
                panic(ferr)
            }
            path, _ := os.Getwd()
            path += "/storage/"+file.Filename
            //c.SaveUploadedFile(file, path)
            //data, fExistsErr := os.Open(path)

            url := "https://demo.egnyte.com/pubapi/v1/fs-content/Shared/Staging/test/"+file.Filename
            //req, _ := http.NewRequest("POST", url, data)
            req, _ := http.NewRequest("POST", url, file)  //Here it gives error
            req.Header.Add("Authorization", "Bearer XXXXXXXXXXXX")
            req.Header.Add("content-type", "text/plain")
            req.Header.Add("name", "file")
            req.Header.Add("Content-Disposition", "form-data")
            res, _ := http.DefaultClient.Do(req)
            defer res.Body.Close()

            body, _ := ioutil.ReadAll(res.Body)
            fmt.Println(res.StatusCode)
            fmt.Println(http.StatusOK)
            fmt.Println(string(body))
            c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename))
        })

请向我建议我要去哪里错了。 如果共享示例代码,将很容易理解。

0 个答案:

没有答案