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 小时前
C 堆区内存管理
c语言·开发语言·网络安全
huoyueyi11 小时前
《融天AI-APP从0到1开发实录》
开发语言·lua
小满zs12 小时前
Go语言第十七章(反射)
后端·go
小满zs12 小时前
Go语言第十五章(JSON序列化)
后端·go
小满zs12 小时前
Go语言第十六章(自定义类型)
后端·go
金銀銅鐵13 小时前
[Java] 用 GUI 展示 EnumMap 增删键值对时的内部变化
java·后端·ai编程
学长毕设13 小时前
基于SpringBoot的上门洗车服务系统设计与实现
java·spring boot·后端
OpenAnolis小助手13 小时前
PHP 两个严重漏洞曝光,龙蜥社区 24 小时完成 3 版本修复
开发语言·操作系统·php·龙蜥社区
阿尼卡~14 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows
hhhjhl15 小时前
Undici 跨端三方库仓颉适配全流程
java·开发语言·ubuntu