• go的gin框架实现接受多个图片和单个视频并保存到本地服务器的接口


    首先是接受多个图片的接口,就是接受多个文件

    收到post请求后首先创建一个文件夹,这里利用uuid创建出唯一标识字符串作为文件夹名称,解析表单中的一串文件循环保存到本地服务器

    1. package main
    2. import (
    3. "github.com/gin-gonic/gin"
    4. "github.com/google/uuid"
    5. "net/http"
    6. )
    7. func saveImages() {
    8. router := gin.Default()
    9. router.POST("", func(context *gin.Context) {
    10. form, err := context.MultipartForm()
    11. if err != nil {
    12. context.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
    13. return
    14. }
    15. folder := uuid.New().String()
    16. for _, file := range form.File["file"] {
    17. err := context.SaveUploadedFile(file, "emergency/images/"+folder+"/"+file.Filename) //视频存储服务器的地址
    18. if err != nil {
    19. context.JSON(http.StatusInternalServerError, err.Error())
    20. return
    21. }
    22. }
    23. context.String(http.StatusOK, folder)
    24. })
    25. err := router.Run(":8080")
    26. if err != nil {
    27. println(err.Error())
    28. return
    29. }
    30. }

    对于单个的视频文件,当然使用上面这个代码也是可以的,不过对于单个文件来说,如果请求中只包含一个文件,我们并不需要使用multipartform

    1. package main
    2. import (
    3. "github.com/gin-gonic/gin"
    4. "github.com/google/uuid"
    5. "net/http"
    6. )
    7. func saveVideo() {
    8. router := gin.Default()
    9. router.POST("", func(context *gin.Context) {
    10. file, err := context.FormFile("file")
    11. if err != nil {
    12. context.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
    13. return
    14. }
    15. folder := uuid.New().String()
    16. err = context.SaveUploadedFile(file, "emergency/video/"+folder+"/"+file.Filename) //视频存储服务器的地址
    17. if err != nil {
    18. context.JSON(http.StatusInternalServerError, err.Error())
    19. return
    20. }
    21. context.String(http.StatusOK, folder)
    22. })
    23. err := router.Run(":8080")
    24. if err != nil {
    25. println(err.Error())
    26. return
    27. }
    28. }
  • 相关阅读:
    Java中的集合类
    搭建微服务架构的电商平台系统
    库兹涅茨周期
    机器学习笔记之高斯过程(一)——基本介绍
    基子Android的自助洗衣店预约系统的设计与实现
    使用watch和tail命令监控文件内容的变化
    滚雪球学Java(44):掌握Java编程的关键:深入解析System类
    【软件测试】测试中的风险有哪些?
    Shopee做关键词广告要选择什么样的产品?
    nginx部署多个项目
  • 原文地址:https://blog.csdn.net/weixin_62264287/article/details/132650342