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
}

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

完成效果如下

相关推荐
2501_924878735 分钟前
无人机光伏巡检缺陷检出率↑32%:陌讯多模态融合算法实战解析
开发语言·人工智能·算法·视觉检测·无人机
计算机毕设定制辅导-无忧学长8 分钟前
InfluxDB 与 Python 框架结合:Django 应用案例(三)
开发语言·python·django
惜.己12 分钟前
python中appium
开发语言·python·appium
小沈熬夜秃头中୧⍤⃝14 分钟前
Python 入门指南:从零基础到环境搭建
开发语言·python
睿思达DBA_WGX16 分钟前
Python 程序设计讲义(54):Python 的函数——函数概述
开发语言·python
Algebraaaaa18 分钟前
C++ 中 NULL 与 nullptr 有什么区别?
开发语言·c++
泉城老铁34 分钟前
Spring Boot 对接阿里云 OSS 的详细步骤和流程
java·后端·程序员
tju新生代魔迷36 分钟前
C语言:位段作业
c语言·开发语言
Aurora_NeAr37 分钟前
大数据之路:阿里巴巴大数据实践——元数据与计算管理
大数据·后端
喜欢板砖的牛马40 分钟前
容器(docker container):你需要知道的一切
后端·docker