Beego 上传单个文件、上传多个文件

beego 中 上 传 图 片 是 非 常 简 单 的 , 但 是 要 注 意 的 是 form 表 单 中 必 须 加 入 enctype="multipart/form-data"这个属性,否则你的浏览器不会传输你上传的文件。
业务逻辑代码:
Beego 提供了两个很方便的方法来处理文件上传:
• GetFile(key string) (multipart.File, *multipart.FileHeader, error) 该方法主要用于用户读取表单中的文件名 the_file,然后返回相应的信息,用户根据这 些变量来处理文件上传:过滤、保存文件等。
• SaveToFile(fromfile, tofile string) error 该方法是在 GetFile 的基础上实现了快速保存的功能 fromfile 是提交时候的 html 表单中的 name

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Article</title>
</head>

<body>
<h2>上传文章</h2>
<form method="post" action="/upload/file" enctype="multipart/form-data">
    标题: <input type="text" name="title" />  <br><br>
    内容: <input type="text" name="content" />
    <br><br>

    文件:<input type="file" name="pic" />
    <br><br>
    <input type="submit" value="提交">
</form>
</body>

</html>
package controllers

import "github.com/astaxie/beego"

type UploadControllers struct {
	beego.Controller
}
func (c *UploadControllers) Get()  {
	c.TplName = "upload.html"


}

func (c *UploadControllers) DoUpload()  {
	title := c.GetString("title")
	content := c.GetString("content")
	beego.Info(title)
	beego.Info(content)
	// 执行上传文件
	f,h,err := c.GetFile("pic")
	if err != nil {
		beego.Error(err)
		c.Ctx.WriteString("上传文件失败")
		return
	}
	c.SaveToFile("pic","static/upload/" + h.Filename) // 目录必须提前创建好

	// 关闭文件流
	defer f.Close()
	c.Ctx.WriteString("上传文件成功")


}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值