golang实现图片上传

实现个图片上传,记录一下

我这里是采用的调试工具,apipost去直接上传的,参数值选择file即可

上传的图片,两种方式,一是用原来的文件名,直接file.Filename即可。

Go 复制代码
func Upload(c *gin.Context) {
	file, _ := c.FormFile("file") // file为字段名
	//获取当前日期参数,当做文件名
	name := utils.NowTimeString()
	extstring := path.Ext(file.Filename)
	dst := "upload_files/" + name + extstring
	//直接用原来的文件名
	//dst := "upload_files/" + file.Filename
	c.SaveUploadedFile(file, dst)

	// 都是gin.context作为入参
	c.JSON(http.StatusOK, gin.H{
		"message":   "success",
		"file_name": name + extstring,
	})
}

另外一种方法就是,自己生成名字,这里自己封装了一个方法

Go 复制代码
package utils

import (
	"fmt"
	"time"
)

// 获取当前日期的参数当做文件名
func NowTimeString() string {
	now := time.Now()
	str := fmt.Sprintf("%d%d%d%d%d%d%d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second(), now.Nanosecond())
	return str
}

年月日时分秒最后加上纳秒拼接得来的

完成效果如下

相关推荐
小码哥_常1 天前
解锁AI编程密码:程序员常用的10个AI提示词
后端
九转成圣1 天前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
SmartRadio1 天前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
laowangpython1 天前
Rust 入门:GitHub 热门内存安全编程语言
开发语言·其他·rust·github
我叫汪枫1 天前
在后台管理系统中,如何递归和选择保留的思路来过滤菜单
开发语言·javascript·node.js·ecmascript
_.Switch1 天前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
软件技术NINI1 天前
webkit简介及工作流程
开发语言·前端·javascript·udp·ecmascript·webkit·yarn
Brendan_0011 天前
JavaScript的Stomp.over
开发语言·javascript·ecmascript
念2341 天前
f5 shape分析
开发语言·javascript·ecmascript
苍穹之跃1 天前
某量JS逆向
开发语言·javascript·ecmascript