远程服务器有一个文件上传接口,文件用于保存到服务器本地,用go如何调用此接口将文件上传至服务器?

首先,文件上传请求方 与 接收方 要协调工作(解析等工作) 

<span style="color:#f33b45;">接收方:</span>

<pre class="has"><code class="language-Go"> func UploadFileToLocal(c echo.Context) error { r := c.Request() //无论用的什么路由,原理是要从request获取数据 t := echotools.NewEchoTools(c) reader, err := r.MultipartReader() //request 获得文件 reader if err != nil { return t.BadRequest(err.Error()) } if reader == nil { return t.BadRequest(`未接受到文件`) } //遍历操作 获得的 for { part, err := reader.NextPart() if err == io.EOF { break } fmt.Printf("FileName=[%s],FormName[%s]\n",part.FileName(),part.FormName()) if part.FileName() == "" { data, _ := ioutil.ReadAll(part) fmt.Printf("FormData=[%s]\n", string(data)) continue } else { //创建一个空文件 dst, er:= os.Create("static/uploadfiles/" part.FileName()) if er != nil { return t.BadRequest(err.Error()) } defer dst.Close() //将获取到的文件复制 给 创建的文件 _,err := io.Copy(dst, part) if err != nil { return t.BadRequest(err.Error()) } } } return t.OK(`OK`) }</code></pre>

<span style="color:#f33b45;">请求方:</span>

<pre class="has"><code class="language-Go">func SendFile(c echo.Context) error{ t := echotools.NewEchoTools(c) r := c.Request() file, header, err := r.FormFile("file") // 获得客户端传来的 文件 file if err != nil { return t.BadRequest("上传错误:" err.Error()) } bodyBuffer := &bytes.Buffer{} bodyWriter := multipart.NewWriter(bodyBuffer) fileWriter, _ := bodyWriter.CreateFormFile("files", header.Filename) io.Copy(fileWriter, file) //将 客户端文件 复制给 用于传输的 fileWriter contentType := bodyWriter.FormDataContentType() //contentType bodyWriter.Close() ip := config.Opts.UploadServerAddr //配置 resp, _ := http.Post("http://" ip "/uploadToLocal/" header.Filename, contentType, bodyBuffer) defer resp.Body.Close() resp_body, _ := ioutil.ReadAll(resp.Body) if resp.Status == `200 OK` { return t.OK(string(resp_body)) }else { return t.BadRequest(string(resp_body)) } }</code></pre>

 

到此这篇关于“Golang 调用http 文件上传接口 进行上传文件”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Golang 调用http 文件上传接口 进行上传文件
22个很棒的jQuery文件上传插件
Beego文件上传至七牛云的玩法
php 文件上传实例剖析
jQuery文件上传 One Click Upload
jQuery文件上传插件 Uploadify
php文件上传代码大全(实例分享)
用PHP控制FTP文件上传
go并发编程笔记
php 文件上传简单实例