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
}

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

完成效果如下

相关推荐
Penge6662 小时前
Go 接口编译期断言
后端
我是一颗柠檬3 小时前
【MySQL全面教学】MySQL面试高频考点汇总Day15(2026年)
数据库·后端·mysql·面试
星空椰3 小时前
Python 面向对象高级:继承与类定义详解
开发语言·python
拽着尾巴的鱼儿3 小时前
springboot openfeign 自定义feign 接口重试机制
java·spring boot·后端
白露与泡影3 小时前
2026大厂Java面试题大全!牛客网最新版
java·开发语言
Ceelog3 小时前
久坐党自救指南:屏幕前 8 小时,身体到底在经历什么
前端·后端
凯瑟琳.奥古斯特3 小时前
高阶子查询题目精炼
开发语言·数据库·python·职场和发展·数据库开发
雪度娃娃4 小时前
转向现代C++——在意为改写的函数添加 override
开发语言·c++
XS0301064 小时前
并发编程 六
java·后端
雪宫街道5 小时前
synchronized 锁的范围:对象锁、类锁与代码块锁
java·jvm·后端·面试