1.1 vue2项目封装的自定义指令, 将如下代码添加到全局的main.js文件中
Vue.directive('binary-src', {
inserted: function (el, binding) {
const url = binding.value;
fetch(url)
.then(response => response.blob())
.then(blob => {
const objectURL = URL.createObjectURL(blob);
el.src = objectURL;
})
.catch(error => {
console.error('Error fetching image:', error);
});
}
})
1.2 自定义指令的使用
<img v-binary-src="真实的url地址">
<audio v-binary-src="真实的url地址" controls/>
<video v-binary-src="真实的url地址" controls />
<iframe v-binary-src="真实的url地址" />
2. 处理后端返回数据的url 函数
function handleUrlToBlob async (url) {
let response = await fetch(url)
let blob = await response.blob()
let blobUrl = URL.createObjectURL(blob)
return blobUrl
}