(doc *goquery.Document, project string)
| 562 | } |
| 563 | |
| 564 | func HandleSVG(doc *goquery.Document, project string) *goquery.Document { |
| 565 | // svg 图片处理 |
| 566 | doc.Find("svg").Each(func(i int, selection *goquery.Selection) { |
| 567 | ret, _ := selection.Parent().Html() |
| 568 | width, height := "", "" |
| 569 | if val, ok := selection.Attr("width"); ok { |
| 570 | width = fmt.Sprintf(` width="%v"`, val) |
| 571 | } |
| 572 | if val, ok := selection.Attr("height"); ok { |
| 573 | height = fmt.Sprintf(` height="%v"`, val) |
| 574 | } |
| 575 | ret = fmt.Sprintf(`<svg xmlns="http://www.w3.org/2000/svg"%v%v version="1.1">%v</svg>`, width, height, ret) |
| 576 | tmpFile := cryptil.Md5Crypt(ret) + ".svg" |
| 577 | src := "" |
| 578 | ioutil.WriteFile(tmpFile, []byte(ret), os.ModePerm) |
| 579 | switch StoreType { |
| 580 | case StoreLocal: |
| 581 | src = "/uploads/projects/" + project + "/" + filepath.Base(tmpFile) |
| 582 | store.ModelStoreLocal.MoveToStore(tmpFile, strings.TrimPrefix(src, "/")) |
| 583 | case StoreOss: |
| 584 | src = "projects/" + project + "/" + filepath.Base(tmpFile) |
| 585 | store.ModelStoreOss.MoveToOss(tmpFile, src, true) |
| 586 | src = "/" + src |
| 587 | } |
| 588 | selection.AfterHtml(fmt.Sprintf(`<img src="%v"/>`, src)) |
| 589 | selection.Remove() |
| 590 | os.Remove(tmpFile) // 删除临时文件 |
| 591 | }) |
| 592 | return doc |
| 593 | } |
| 594 | |
| 595 | // 操作图片显示 |
| 596 | // 如果用的是oss存储,这style是avatar、cover可选项 |
no test coverage detected