详解JavaScript如何生成临时链接
目录
前言
前端基于文件上传需要有生成临时可访问链接的能力,我们可以通过和API来实现。
URL.createObjectURL()
静态方法会创建一个 ,其中包含一个表示参数中给出的对象的URL。这个 URL 的生命周期和创建它的窗口中的 绑定。这个新的URL 对象表示指定的 对象或 对象。
1. 语法
let objectURL = URL.createObjectURL(object);
2. 参数
用于创建 URL 的 对象、 对象或者 对象。
3. 返回值
一个包含了一个对象URL,该URL可用于指定源 object的内容。
4. 示例
document.querySelector('#file').onchange = function (e) {
console.log(e.target.files[0])
console.log(URL.createObjectURL(e.target.files[0]))
}
将上方console控制台打印的blob文件资源地址粘贴到浏览器中
blob:http://localhost:8080/1ece2bb1-b426-4261-89e8-c3bec43a4020
URL.revokeObjectURL()
在每次调用 方法时,都会创建一个新的 URL 对象,即使你已经用相同的对象作为参数创建过。当不再需要这些 URL 对象时,每个对象必须通过调用 方法来释放。
浏览器在 document 卸载的时候,会自动释放它们,但是为了获得最佳性能和内存使用状况,你应该在安全的时机主动释放掉它们。
1. 语法
window.URL.revokeObjectURL(objectURL);
2. 参数 objectURL
一个 ,表示通过调用 方法返回的 URL 对象。
3. 返回值
undefined
4. 示例
document.querySelector('#file').onchange = function (e) {
const file = e.target.files[0]
const URL1 = URL.createObjectURL(file)
console.log(URL1)
document.querySelector('#img1').src = URL1
URL.revokeObjectURL(URL1)
const URL2 = URL.createObjectURL(file)
console.log(URL2)
document.querySelector('#img2').src = URL2
}
与FileReader.readAsDataURL(file)区别
1. 主要区别
2. 执行时机
3. 内存使用
4. 优劣对比
到此这篇关于详解JavaScript如何生成临时链接的文章就介绍到这了,更多相关JavaScript生成临时链接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章: