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
}

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

完成效果如下

相关推荐
掘金者阿豪11 分钟前
Kavita+cpolar 打造随身数字书房,让资源不再混乱,通勤 、出差都能随心读。
后端
心之语歌32 分钟前
Spring Security api接口 认证放行
后端
用户83562907805141 分钟前
Python 实现 PPT 转 HTML
后端·python
0xDevNull1 小时前
MySQL索引进阶用法
后端·mysql
舒一笑1 小时前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
UIUV1 小时前
Splitter学习笔记(含RAG相关流程与代码实践)
后端·langchain·llm
cipher2 小时前
HAPI + 设备指纹认证:打造更安全的远程编程体验
前端·后端·ai编程
雨中飘荡的记忆2 小时前
保证金系统入门到实战
java·后端
秋水无痕2 小时前
从零搭建个人博客系统:Spring Boot 多模块实践详解
前端·javascript·后端
用户9003486133462 小时前
GO语言基础:反射
后端