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
}

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

完成效果如下

相关推荐
SimonKing2 分钟前
全面解决中文乱码问题:从诊断到根治
java·后端·程序员
OxYGC19 分钟前
[玩转GoLang] 5分钟整合Gin / Gorm框架入门
开发语言·golang·gin
锐策23 分钟前
Lua 核心知识点详解
开发语言·lua
几颗流星34 分钟前
Java 中使用 CountDownLatch 增加线程竞争,帮助复现并发问题
后端
郑洁文34 分钟前
基于SpringBoot的天气预报系统的设计与实现
java·spring boot·后端·毕设
kyle~40 分钟前
C/C++---动态内存管理(new delete)
c语言·开发语言·c++
optimistic_chen41 分钟前
【Java EE进阶 --- SpringBoot】Spring DI详解
spring boot·笔记·后端·spring·java-ee·mvc·di
Java水解1 小时前
【MySQL】数据库基础
后端·mysql
落日沉溺于海1 小时前
React From表单使用Formik和yup进行校验
开发语言·前端·javascript
中国胖子风清扬1 小时前
Rust 日志库完全指南:从入门到精通
spring boot·后端·rust·学习方法·logback