为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 golang Rest api 将文件或图像路径 url 返回到 forntend?

如何使用 golang Rest api 将文件或图像路径 url 返回到 forntend?

Go
精慕HU 2023-07-17 14:38:43
我的后端使用 Golang(gin-gonic 框架)。我开发了下面的 REST API 来从前端应用程序接收图像或文件。我将文件保存在这个路径“/home/user/Desktop/files/”+dt.String()+“_”+filepath.Base(file.Filename)中。到目前为止一切都很好,我可以看到保存的文件。现在我计划通过另一个rest API(例如:API:/getImageUrl,响应: https: //via.placeholder.com/600/771796)将这些文件路径返回到前端,以便用户可以下载文件。但我不知道如何将这些文件路径 URL 返回到前端。有人可以指导我如何开发这个 REST API 吗?               requests.POST("/upload", func(c *gin.Context) {                    // Source                    file, err := c.FormFile("file")                    if err != nil {                        c.String(http.StatusBadRequest, fmt.Sprintf("get form err: %s", err.Error()))                        return                    }                    dt := time.Now()                    filename := "/home/user/Desktop/files/"+dt.String()+"_"+filepath.Base(file.Filename)                    if err := c.SaveUploadedFile(file, filename); err != nil {                        c.String(http.StatusBadRequest, fmt.Sprintf("upload file err: %s", err.Error()))                        return                    }                    c.JSON(200, gin.H{"message": "Files Uploaded Successfully"})                }) 
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

首先,您应该将图像名称存储在数据库中。

要在 gin 中提供静态资源(图像文件),您必须定义静态路由。

router := gin.Default()
router.Static("/image", "./path-to-image-dir")

文件路径看起来像这样

http://myapp.com/image/filename.jpg

但我建议您使用自定义标头来使用bind-header方法提供图像内容,这样您将拥有更多控制权。


查看完整回答
反对 回复 2023-07-17
  • 1 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信