龙空技术网

如何用Gin实现文件上传和下载

数据虫 87

前言:

当前小伙伴们对“接口返回文件流怎么去下载”大约比较注意,小伙伴们都需要剖析一些“接口返回文件流怎么去下载”的相关资讯。那么小编在网络上汇集了一些关于“接口返回文件流怎么去下载””的相关文章,希望咱们能喜欢,咱们快快来了解一下吧!

文件上传

首先,我们来看一下如何用Gin实现文件上传功能。其实,Gin已经为我们提供了非常方便的方法,只需要几行代码就能搞定。以下是一个简单的示例:

	// 文件上传	router.POST("/upload", func(c *gin.Context) {		// 单文件		file, _ := c.FormFile("file")		log.Println(file.Filename)		dst := "./uploads/" + file.Filename		// 上传文件至指定的完整文件路径		c.SaveUploadedFile(file, dst)		c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename))	})

我们定义了一个上传接口/upload,通过c.FormFile("file")获取上传的文件,然后使用c.SaveUploadedFile方法保存文件,最后返回上传成功的消息。是不是很简单?

文件下载

接下来,我们来看看文件下载功能。在Gin中,文件下载同样非常简单,只需要使用c.File方法即可:

	router.GET("/download/:filename", func(c *gin.Context) {		filename := c.Param("filename")		filepath := "./uploads/" + filename		c.File(filepath)	})

这个代码段的意思是:我们定义了一个下载接口/download/:filename,通过c.Param("filename")获取请求中的文件名,然后使用c.File(filepath)方法返回文件。

测试代码:

可以看到文件已经上传成功了!

接下来测试下文件下载:

标签: #接口返回文件流怎么去下载