// 读取多个文件示例
public static async getAssetsFromLocal(accept:string = "*", bMul = false, func:any=null): Promise<string> {
let document = Laya.Browser.document;
let uploader = document.createElement('input');
uploader.type = 'file';
uploader.accept = accept;
if(bMul){
uploader.multiple = "multiple";
}
// 通过实际body的鼠标点击,突破chrome的模拟click事件安全限制
let uploadClicker = ()=>{
document.body.removeEventListener("click", uploadClicker);
uploader.click();
}
document.body.addEventListener("click", uploadClicker);
let retPromise = new Promise<string>(r => {
uploader.onchange = function(){
let imgs = new Map();
let conf;
for(let i = 0; i < uploader.files.length; i++){
let reader = new FileReader();
let fileinfo = uploader.files[i];
let tName = fileinfo.name.split(".");
let bImg = true;
if(tName[tName.length - 1] == "json"){
reader.readAsText(fileinfo);
bImg = false;
}
else if(tName[tName.length - 1] == "png" || tName[tName.length - 1] == "jpg"){
reader.readAsDataURL(fileinfo);
}
reader.onload = function (e) {
console.log("reading file", fileinfo, reader.result);
if(bImg){
imgs.set(fileinfo.name, reader.result);
}
else{
conf = reader.result;
}
if(conf && (imgs.size + 1) == uploader.files.length && func){
func(conf, imgs);
r("");
}
};
reader.onerror = function (e) {
console.log("uploader readfile error", e);
};
reader.onabort = function (e) {
console.log("uploader readfile abort", e);
};
}
};
});
return retPromise;
}
// 下载文件示例
public static saveToLocalFile(fName: string, content){
let document = Laya.Browser.document;
let dnEle = document.createElement('a');
dnEle.setAttribute("href", "data:text/plain;charset=utf-8," + content);
dnEle.setAttribute("download", fName);
dnEle.style.display = "none";
document.body.appendChild(dnEle);
dnEle.click();
document.body.removeChild(dnEle);
}