登录
首页 >  Golang >  Go问答

使用 Golang Rest API 将文件或图像路径 URL 发送到前端的方法

来源:stackoverflow

时间:2024-03-13 11:45:26 183浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《使用 Golang Rest API 将文件或图像路径 URL 发送到前端的方法》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我正在使用 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"})
                })

解决方案


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

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

router := gin.default()
router.static("/image", "./path-to-image-dir")

文件路径看起来像这样

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

但我建议您使用 bind-header 方法使用自定义标头来提供图像内容,这样您将拥有更多控制权。您可以在杜松子酒文档中阅读更多相关信息。

https://github.com/gin-gonic/gin#bind-header

终于介绍完啦!小伙伴们,这篇关于《使用 Golang Rest API 将文件或图像路径 URL 发送到前端的方法》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>