123456789101112131415161718192021222324252627282930313233343536 |
- package util
- import (
- "context"
- "encoding/base64"
- "fmt"
- "github.com/gogf/gf/v2/errors/gerror"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/os/gfile"
- "time"
- )
- func SavePdfFile(ctx context.Context, num, pdfBase64 string) (filePath string, err error) {
- var (
- rootDir = g.Cfg().MustGet(ctx, "pdfFilePathRootDir", "/out").String()
- pathPrefix = g.Cfg().MustGet(ctx, "pdfFilePathPrefix", "/invoice").String()
- webDoMain = g.Cfg().MustGet(ctx, "pdfFilePathDomain", "https://www.jianyu360.com").String()
- now = time.Now()
- requestPath = fmt.Sprintf("/%s/%s/%s.pdf", pathPrefix, now.Format("2006-01-02"), num)
- fileFullPath = fmt.Sprintf("%s%s", rootDir, requestPath)
- )
- data, err := base64.StdEncoding.DecodeString(pdfBase64)
- if err != nil {
- return "", gerror.Wrap(err, "解析文件base64编码失败")
- }
- pdfFile, err := gfile.Create(fileFullPath)
- if err != nil {
- return "", gerror.Wrap(err, "创建pdf文件异常")
- }
- if _, err = pdfFile.Write(data); err != nil {
- return "", gerror.Wrap(err, "pdf文件写入异常")
- }
- return fmt.Sprintf("%s%s", webDoMain, requestPath), nil
- }
|