// uploadFile
func uploadFile(c echo.Context) (error, string) {
file, err := c.FormFile("qr_code")
if err != nil {
return err, ""
}
lastIndex := strings.LastIndex(file.Filename, ".")
ext := file.Filename[lastIndex:]
ext_list := []string{".png", ".jpg", ".jpeg"}
if !utils.In(ext, ext_list) {
return errors.New("文件只能是png|jpg|jpeg合适的图片"), ""
}
if file.Size*2 > MaxFileSize {
return errors.New("文件太大,不符合要求"), ""
}
fi, err := file.Open()
if err != nil {
return err, ""
}
defer fi.Close()
str := GetPaymentStr(fi).String()
return nil, str
}
// GetPaymentStr
func GetPaymentStr(fi io.Reader) (paymentCodeUrl *gozxing.Result) {
img, _, err := image.Decode(fi)
if err != nil {
ubzer.HLog.Error("解析二维码出错")
}
bmp, _ := gozxing.NewBinaryBitmapFromImage(img)
qrReader := qrcode.NewQRCodeReader()
result, err := qrReader.Decode(bmp, nil)
if err != nil {
ubzer.HLog.Error("解析二维码出错")
}
return result
}