广告
返回顶部
首页 > 资讯 > 后端开发 > GO >Golang实现http文件上传小功能的案例
  • 189
分享到

Golang实现http文件上传小功能的案例

2024-04-02 19:04:59 189人浏览 安东尼
摘要

看代码吧~ package main import ( "fmt" "io" "net/Http" "os" ) func main() { http.HandleFu

看代码吧~


package main
import (
	"fmt"
	"io"
	"net/Http"
	"os"
)
func main() {
	http.HandleFunc("/", index)
	http.HandleFunc("/upload", upload)
	http.ListenAndServe(":1789", nil)
}
func upload(w http.ResponseWriter, r *http.Request) {
	r.ParseMultipartFORM(32 << 20)
	file, handler, err := r.FormFile("uploadfile")
	if err != nil {
		fmt.Println(err)
		return
	}
	defer file.Close()
	f, err := os.OpenFile(handler.Filename, os.O_WRONLY|os.O_CREATE, 0666)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer f.Close()
	io.Copy(f, file)
	fmt.Fprintln(w, "upload ok!")
}
func index(w http.ResponseWriter, r *http.Request) {
	w.Write([]byte(tpl))
}
const tpl = `<html>
<head>
<title>上传文件</title>
</head>
<body>
<form enctype="multipart/form-data" action="/upload" method="post">
 <input type="file" name="uploadfile" />
 <input type="hidden" name="token" value="{...{.}...}"/>
 <input type="submit" value="upload" />
</form>
</body>
</html>`

补充:Golang 调用http 文件上传接口 进行上传文件

远程服务器有一个文件上传接口,文件用于保存到服务器本地,用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`)
}

请求方:


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))
 }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文档:

--结束END--

本文标题: Golang实现http文件上传小功能的案例

本文链接: https://www.lsjlt.com/news/125258.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Golang实现http文件上传小功能的案例
    看代码吧~ package main import ( "fmt" "io" "net/http" "os" ) func main() { http.HandleFu...
    99+
    2022-11-12
  • javaweb实现文件上传小功能
    本文实例为大家分享了javaweb实现文件上传的具体代码,供大家参考,具体内容如下 1.创建文件上传页面 <%@ page contentType="text/html;cha...
    99+
    2022-11-13
  • Golang+Android基于HttpURLConnection实现的文件上传功能示例
    本文实例讲述了Golang+Android基于HttpURLConnection实现的文件上传功能。分享给大家供大家参考,具体如下: 这里要演示的是使用Android程序作为客...
    99+
    2022-06-06
    示例 文件上传 golang Android
  • Golang实现文件传输功能
    本文实例为大家分享了Golang实现文件传输的具体代码,供大家参考,具体内容如下 借助TCP完成文件的传输,基本思路如下: 1、发送方(客户端)向服务端发送文件名,服务端保存该文件名...
    99+
    2022-11-11
  • SpringBoot实现文件上传下载功能小结
    最近做的一个项目涉及到文件上传与下载。前端上传采用百度webUploader插件。有关该插件的使用方法还在研究中,日后整理再记录。本文主要介绍SpringBoot后台对文件上传与下载的处理。单文件上传// 单文件上传@RequestMapp...
    99+
    2023-05-31
    spring boot 文件上传
  • golang gin框架实现大文件的流式上传功能
    目录upload.htmlgin_stream_upload_file.go一般来说,通过c.Request.FormFile()获取文件的时候,所有内容都全部读到了内存。如果是个巨...
    99+
    2022-11-13
  • golang实现文件上传并转存数据库功能
    本文实例为大家分享了golang实现文件上传并转存数据库的具体代码,供大家参考,具体内容如下 需求 上传图片,且可选择将图片保存到数据中。 一、流程图 二、步骤 1.上传文件接口 ...
    99+
    2022-11-11
  • JavaSpringBoot实现文件上传功能的示例代码
    测试代码 pom.xml: <xml version="1.0" encoding="UTF-8"> <project xmlns="http://maven.ap...
    99+
    2022-11-13
  • Springboot文件上传功能的实现
    目录1.新建文件上传页面2.新建文件上传处理Controller类3.文件上传功能测试4.文件上传路径回显5.多文件上传功能实现6.文件名不同时的多文件上传处理1.新建文件上传页面 ...
    99+
    2023-05-15
    springboot文件上传 springboot文件上传方法
  • java实现文件的上传功能
    本文实例为大家分享了java实现文件的上传功能的具体代码,供大家参考,具体内容如下 直接上代码了 一、上传界面 <%@ page language="java" content...
    99+
    2022-11-13
  • AntDesignUpload文件上传功能的实现
    目录一、Ant Design Vue文件上传功能二、Ant Design React文件上传功能总结一、Ant Design Vue文件上传功能 1.文件上传选项框 <a-m...
    99+
    2023-05-17
    Ant Design Upload Upload文件上传功能 Ant Design Upload文件上传
  • springmvc实现文件上传功能
    一个简单的springmvc文件上传例子 所需的依赖 只需要这个就好了。在idea的依赖关系图中,commons-fileupload包含了commons-io依赖 <d...
    99+
    2022-11-11
  • ASP.NET实现文件上传功能
    本文实例为大家分享了ASP.NET实现文件上传功能的具体代码,供大家参考,具体内容如下 1、搭建网站结构 2、编写网页文件 创建一个Web窗体UploadFile和UpFile文件...
    99+
    2022-11-13
  • SpringBoot实现文件上传功能
    经典的文件上传 服务器处理上传文件一般都是先在请求中读取文件信息,然后改变名称保存在服务器的临时路径下,最后保存到服务器磁盘中。本次以thymeleaf搭建demo,因此需要引入th...
    99+
    2022-11-12
  • JSP实现文件上传功能
    本文实例为大家分享了JSP实现文件上传功能的具体代码,供大家参考,具体内容如下 一、准备部分 需要fileupload.jar与io.jar包共同完成。构建完成路径后可继续。 资源地...
    99+
    2022-11-12
  • javaweb实现文件上传功能
    本文实例为大家分享了javaweb实现文件上传的具体代码,供大家参考,具体内容如下 1、创建一个空项目 2、新建一个web application 的Module 3、创建一个lib...
    99+
    2022-11-13
  • JavaWeb实现上传文件功能
    本文实例为大家分享了JavaWeb实现上传文件的具体代码,供大家参考,具体内容如下 这是需要使用到的两个jar包一定要导入到lib目录中,并添加到发布的lib目录下 index.j...
    99+
    2022-11-13
  • ajaxfileupload.js实现上传文件功能
    下面是一个使用ajaxfileupload.js实现文件上传功能的示例代码:首先,你需要引入ajaxfileupload.js文件,...
    99+
    2023-08-11
    功能
  • Java中用Socket实现HTTP文件上传实例
    我想做过web开发的程序员大部分都做过文件上传的功能,大多数时候我们都是借助于commons-fileupload这样的jar包实现的。下面我试着通过读取Socket的输入流来实现一个文件上传的功能。在做文件上传之前我们需要先了解一下HTT...
    99+
    2023-05-31
    socket 文件上传 ava
  • Android基于Http协议实现文件上传功能的方法
    本文实例讲述了Android基于Http协议实现文件上传功能的方法。分享给大家供大家参考,具体如下: 注意一般使用Http协议上传的文件都比较小,一般是小于2M 这里示例是上传...
    99+
    2022-06-06
    HTTP 方法 文件上传 http协议 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作