so ..我有一個base64編碼的字符串,我需要解碼,檢查它的寬度和高度,然後保存到文件。但是..我一直在得到一個腐敗的圖像文件保存。Go - 將base64字符串保存到文件
package server
import (
"encoding/base64"
"errors"
"io"
"os"
"strings"
"image"
_ "image/gif"
_ "image/jpeg"
_ "image/png"
)
var (
ErrBucket = errors.New("Invalid bucket!")
ErrSize = errors.New("Invalid size!")
ErrInvalidImage = errors.New("Invalid image!")
)
func saveImageToDisk(fileNameBase, data, bucket string) (string, error) {
idx := strings.Index(data, ";base64,")
if idx < 0 {
return "", ErrInvalidImage
}
reader := base64.NewDecoder(base64.StdEncoding, strings.NewReader(data[idx+8:]))
imgCfg, fmt, err := image.DecodeConfig(reader)
if err != nil {
return "", err
}
if imgCfg.Width != 750 || imgCfg.Height != 685 {
return "", ErrSize
}
fileName := fileNameBase + "." + fmt
f, err := os.Create(fileName)
if err != nil {
return "", err
}
_, err = io.Copy(f, reader)
f.Close()
return fileName, err
}
它確實保存一個文件..和我測試的base64是有效的,因爲在線base64到圖像轉換器。任何幫助?
http://pastebin.com/u18eRv7d下面是我使用(在FUNC數據)
閱讀時不讀者是否「用盡」其內容? – Siguza