提交 8ca8b9b9 authored 作者: pengxiaohui's avatar pengxiaohui

图片下载转成base64防止页面直接打开

上级 e3293515
......@@ -394,11 +394,9 @@ export default {
}
},
handleClearFile(target) {
console.log(target)
this.form[target + '_uri'] = ''
this.form[target + '_title'] = ''
this.form[target + '_size'] = ''
console.log(this.form)
},
tinymceBlur() {
this.$refs['el-form-item-tinymce'].$emit('el.form.blur')
......@@ -431,7 +429,11 @@ export default {
toUnitTimestamp(time) {
return formatToDate(time).getTime() / 1000
},
fileDownload(fileUrl, fileName) {
async fileDownload(fileUrl, fileName) {
const suffix = splitStrLast(fileUrl, '.')
if (['png', 'jpg'].includes(suffix)) {
fileUrl = await this.getBase64(fileUrl)
}
const elink = document.createElement('a')// 创建一个a标签
elink.download = fileName;// 设置a标签的下载属性
elink.style.display = 'none';// 将a标签设置为隐藏
......@@ -441,6 +443,25 @@ export default {
// URL.revokeObjectURL(elink.href) // 下载完成释放URL 对象
document.body.removeChild(elink)// 移除a标签
},
getBase64(url) {
return new Promise((resolve, reject) => {
var Img = new window.Image()
var dataURL = ''
Img.setAttribute('crossOrigin', 'Anonymous')
Img.src = url + '?v=' + Math.random()
Img.onload = function() {
// 要先确保图片完整获取到,这是个异步事件
var canvas = document.createElement('canvas') // 创建canvas元素
var width = Img.width // 确保canvas的尺寸和图片一样
var height = Img.height
canvas.width = width
canvas.height = height
canvas.getContext('2d').drawImage(Img, 0, 0, width, height) // 将图片绘制到canvas中
dataURL = canvas.toDataURL('image/jpeg') // 转换图片为dataURL
resolve(dataURL)
}
})
},
fetchContentTypeList() {
if (this.form.project_id) {
getProjectContentTypeList(this.pageType, { project_id: this.form.project_id }).then((res) => {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论