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
}

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

完成效果如下

相关推荐
凯歌的博客17 分钟前
python虚拟环境应用
linux·开发语言·python
鬼火儿25 分钟前
Golang笔记——Interface类型
java·后端
三十_A26 分钟前
【无标题】
前端·后端·node.js
蓝-萧34 分钟前
Redis——Windows安装
java·后端
祈祷苍天赐我java之术41 分钟前
如何在Java中整合Redis?
java·开发语言·redis
王元_SmallA1 小时前
【玩转全栈】----Django基本配置和介绍
java·后端
froginwe111 小时前
HTML5 测验
开发语言
Moonbit2 小时前
招募进行时 | MoonBit AI : 程序语言 & 大模型
前端·后端·面试
AlianNiew2 小时前
从源码到实战:用 Java 打造“限时+防重放”的文件安全预览链接
java·后端
小威要向诸佬学习呀2 小时前
2025年软件外包避坑指南与平台推荐:开发者实用经验分享
后端