当前位置:   article > 正文

Beego框架实现文件上传+七牛云存储_beego 上传excel

beego 上传excel

一、下载

在go.mod中引入

github.com/qiniu/api.v7/v7 v7.8.2

控制器中引入

  1. "github.com/qiniu/api.v7/v7/auth/qbox"
  2. "github.com/qiniu/api.v7/v7/storage"

使用这个会出现一个警告

但是不会影响上传

二、使用步骤(刚开始学习go,所有是先将图片保存到本地,然后再进行上传)

1.保存到本地

  1. fileSuffix := ".png"
  2. rand.Seed(time.Now().UnixNano())
  3. randNum := fmt.Sprintf("%d", rand.Intn(9999)+1000)
  4. hashName := md5.Sum([]byte(time.Now().Format("2006_01_02_15_04_05_") + randNum))
  5. fileName := fmt.Sprintf("%x", hashName) + fileSuffix
  6. imageUrl := "static/img/" + fileName
  7. err := u.SaveToFile("image", imageUrl)
  8. if err != nil {
  9. u.Ctx.WriteString(fmt.Sprintf("%v", err))
  10. return
  11. }
  12. u.Ctx.WriteString("上传本地成功~!!!!!!!")
  13. u.Ctx.WriteString(imageUrl)

保存本地的位置是static/img,如果没有请先创建。 

2.云存储(这里查看了七牛云的手册)

代码如下:

  1. bucket, _ := beego.AppConfig.String("bucket")
  2. putPolicy := storage.PutPolicy{
  3. Scope: bucket,
  4. }
  5. accessKey, _ := beego.AppConfig.String("accessKey")
  6. secretKey, _ := beego.AppConfig.String("secretKey")
  7. mac := qbox.NewMac(accessKey, secretKey)
  8. upToken := putPolicy.UploadToken(mac)
  9. cfg := storage.Config{}
  10. // 空间对应的机房
  11. cfg.Zone = &storage.ZoneHuadong
  12. // 是否使用https域名
  13. cfg.UseHTTPS = true
  14. // 上传是否使用CDN上传加速
  15. cfg.UseCdnDomains = true
  16. // 构建表单上传的对象
  17. formUploader := storage.NewFormUploader(&cfg)
  18. ret := storage.PutRet{}
  19. // 可选配置
  20. putExtra := storage.PutExtra{
  21. Params: map[string]string{
  22. "x:name": "github logo",
  23. },
  24. }
  25. localFile := imageUrl
  26. //imageUrl:static/img/7bc0954e8edfc48895e7c33c280a66d3.png
  27. key := "shopping/userinfo/" + fileName //存储后的文件位置,shopping文件夹 userinfo文件夹 filename文件名称
  28. err = formUploader.PutFile(context.Background(), &ret, upToken, key, localFile, &putExtra)
  29. if err != nil {
  30. fmt.Println(err)
  31. return
  32. }
  33. u.Ctx.WriteString("云存储成功")

key:表示的是图片上传到空间后存储的位置

localFile:表示的是要上传的文件地址

这里“构建表单上传的对象”不是很了解,后续再进行补充。

后续有更好的方法还会进行补充,希望大佬们能够指点!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/509438
推荐阅读