前端html 有没有朋友使用过 免费图片api 的朋友,我遇到一个问题。
我在代码中使用
id="banner" src="https://api.likepoems.com/img/nature" alt="图片">
此时会正常出现一张图片。
但我想 通过代码 保存这张图片,应该怎么做,因为这个 src 属性 是一个通用地址。每次刷新都是新图片。
后端是php。
downloadIamge (imgsrc, name) { // 下载图片地址和图片名
var image = new Image()
// 解决跨域 Canvas 污染问题
image.setAttribute('crossOrigin', 'anonymous')
image.onload = function () {
var canvas = document.createElement('canvas')
canvas.width = image.width
canvas.height = image.height
var context = canvas.getContext('2d')
context.drawImage(image, 0, 0, image.width, image.height)
var url = canvas.toDataURL('image/png') // 得到图片的base64编码数据
var a = document.createElement('a') // 生成一个a元素
var event = new MouseEvent('click') // 创建一个单击事件
a.download = name || 'photo' // 设置图片名称
a.href = url // 将生成的URL设置为a.href属性
a.dispatchEvent(event) // 触发a的单击事件
}
封装个方法下载 下来 。img 的src 是动态的。点击下载把 src传到函数里
downloadFile = ((fileurl, filename) => { //fileurl文件地址(一般是接口返回) filename文件下载后的名字
console.log("3333")
var a = document.createElement('a');
a.download = filename; //下载后文件名
a.style.display = 'none';
var blob = new Blob([fileurl]); // 字符内容转变成blob地址 二进制地址
a.href = URL.createObjectURL(blob);
document.body.appendChild(a);
a.click(); // 触发点击
document.body.removeChild(a); // 然后移除
});
https://blog.csdn.net/weixin_44058725/article/details/103667552