首页 > 编程知识 正文

Golang 调用http 文件上传接口 进行上传文件,java调用文件上传接口

时间:2023-05-06 14:16:09 阅读:209940 作者:1840

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

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

接收方:

func UploadFileToLocal(c echo.Context) error {r := c.Request() //无论用的什么路由,原理是要从request获取数据t := echotools.NewEchoTools(c)reader, err := r.MultipartReader() //request 获得文件 readerif 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`)}

请求方:

func SendFile(c echo.Context) error{t := echotools.NewEchoTools(c)r := c.Request()file, header, err := r.FormFile("file") // 获得客户端传来的 文件 fileif err != nil {return t.BadRequest("上传错误:" + err.Error())}bodyBuffer := &bytes.Buffer{}bodyWriter := multipart.NewWriter(bodyBuffer)fileWriter, _ := bodyWriter.CreateFormFile("files", header.Filename)io.Copy(fileWriter, file) //将 客户端文件 复制给 用于传输的 fileWritercontentType := bodyWriter.FormDataContentType() //contentTypebodyWriter.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))}}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。