Blob flie 剪切板
//Blob 转 ArrayBuffer
var bb = new Blob(['file:///Users/arick/Desktop/123.png'], { type: "image/png" })
var objecturl = window.URL.createObjectURL(bb);
var fr = new FileReader();
fr.onloadend = function (e) {
console.log(fr.result);
console.log(e.target.result);
}
fr.readAsArrayBuffer(bb);
Blob 转 file
var bb = new Blob(['file:///Users/arick/Desktop/123.png'], { type: "image/png" })
let files = new window.File([bb], "file.name.png", {type: "image/png"})
console.log(files);
Blob 转 url
var reader = new FileReader();
reader.onload = function (e) {
var dataURL = reader.result;
console.log(e.target.result);
}
reader.readAsDataURL(bb);
上传blob 或 file
function upload2(file) {
const fd = new FormData()
fd.append('file', file)
fd.append('userName', 'usereeName')
fd.append('age','18')
// 获取某个控件的值
fd.get('userename') // ""
// 设置某个控件的值
fd.set('userename', '张三');
fetch('/upload', {
method: 'post',
headers: {
'2': 'multipart/form-data',
},
body: fd,
}).then(response => response.json())
.then((data) => {
console.log(data);
});
}
读取剪切板文件
async function getClipboardContents() {
try {
const clipboardItems = await navigator.clipboard.read();
for (const clipboardItem of clipboardItems) {
for (const type of clipboardItem.types) {
const blob = await clipboardItem.getType(type);
// console.log(URL.createObjectURL(blob));
if (type == "text/plain") {
//console.log(new Response(blob))
//const text = await (new Response(blob)).text()
//document.getElementById("outbox").innerText = text
}else if (type == "text/html"){
//console.log(new Response(blob))
document.getElementById("outbox2").innerHTML = await (new Response(blob)).text()
}
else if (type == "image/png"){
//console.log((new Response(blob)).body)
//console.log(new Request(blob))
//document.getElementById("img").src = URL.createObjectURL(blob);
//upload(blob)
}
}
}
} catch (err) {
console.error(err.name, err.message);
}
}