猿问

当源是 multipart.File 时,image.Decode 导致“未知格式”

我有一个multipart.File用户上传到我的服务器,然后我使用该文件并将其上传到 s3 aws-sdk-go,但我也想创建该图像的缩略图。


当我file是os.Open(...本地文件的返回值时,下面的代码在我的测试中工作正常,但是err当我发送CreateThumbnail与我发送到的相同变量时,它击中了块s3,它要求一个io.Reader


import (

  "image"

  "image/jpeg"

)

func UploadToS3(file multipart.File, /*snip*/) {

  _, uploadErr := uploader.Upload(&s3manager.UploadInput{

    Bucket: aws.String(bucket),

    Key:    aws.String(key),

    Body:   file,

    ContentType: aws.String(mimeType),

    ACL: aws.String("public-read"),

  })

  reader, err := CreateThumbnail(file)

}    


func CreateThumbnail(imageFile io.Reader) (io.Reader, error) {

  decodedImage, _, err := image.Decode(imageFile)

  if err != nil {

   fmt.Println("Error decoding", err, decodedImage) // "unknown format"

   return nil, err

 }

 /*snip*/

我看到的大多数问题的答案都涉及添加import _ "image/jpeg",但已经导入(以及png和gif)。我对 Golang 还很陌生,所以我对自己做错了什么有点迷茫。我也尝试image.Decode(bufio.NewReader(imageFile))过,但结果相同err。


喵喔喔
浏览 226回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答