(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/script/mk/utils/FileUtil.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { return __quick_compile_project__.require(request, __filename); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; cc._RF.push(module, '169f6jrZC1DK61LjHa0l1kK', 'FileUtil'); // script/mk/utils/FileUtil.ts "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * 文件操作工具类 * @author 薛鸿潇 */ var FileUtil = /** @class */ (function () { function FileUtil() { } /** * 打开文件选择器 * @param {string} accept * @param {(file: File) => void} callback * @memberof FileUtil */ FileUtil.prototype.openLocalFile = function (accept, callback) { var inputEl = document.getElementById('file_input'); if (!inputEl) { inputEl = document.createElement('input'); inputEl.id = 'file_input'; inputEl.setAttribute('id', 'file_input'); inputEl.setAttribute('type', 'file'); inputEl.setAttribute('class', 'fileToUpload'); inputEl.style.opacity = '0'; inputEl.style.position = 'absolute'; inputEl.setAttribute('left', '-999px'); document.body.appendChild(inputEl); } accept = accept || ".*"; inputEl.setAttribute('accept', accept); inputEl.onchange = function (event) { var files = inputEl.files; if (files && files.length > 0) { var file = files[0]; if (callback) callback(file); } }; inputEl.click(); }; /** * 读取本地文件数据 * @param {File} file * @param {READ_FILE_TYPE} readType * @param {((result: string | ArrayBuffer) => void)} callback * @memberof FileUtil */ FileUtil.prototype.readLocalFile = function (file, readType, callback) { var reader = new FileReader(); reader.onload = function (event) { if (callback) { if (reader.readyState == FileReader.DONE) { callback(reader.result); } else { callback(null); } } }; switch (readType) { case READ_FILE_TYPE.DATA_URL: reader.readAsDataURL(file); break; case READ_FILE_TYPE.TEXT: reader.readAsText(file); // 作为字符串读出 break; case READ_FILE_TYPE.BINARY: reader.readAsBinaryString(file); break; case READ_FILE_TYPE.ARRAYBUFFER: reader.readAsArrayBuffer(file); break; } }; /** * 保存数据到本地 * @param {*} fileNameToSaveAs 要保存的文件名 * @param {*} textToWrite 要保存的文件内容 * @memberof FileUtil */ FileUtil.prototype.saveForBrowser = function (fileNameToSaveAs, textToWrite) { if (cc.sys.isBrowser) { console.log("浏览器"); var textFileAsBlob = new Blob([textToWrite], { type: 'application/json' }); var downloadLink = document.createElement("a"); downloadLink.download = fileNameToSaveAs; downloadLink.innerHTML = "Download File"; if (window.webkitURL != null) { // Chrome allows the link to be clicked // without actually adding it to the DOM. downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob); } else { // Firefox requires the link to be added to the DOM // before it can be clicked. downloadLink.href = window.URL.createObjectURL(textFileAsBlob); // downloadLink.onclick = destroyClickedElement; downloadLink.style.display = "none"; document.body.appendChild(downloadLink); } downloadLink.click(); } }; return FileUtil; }()); exports.default = FileUtil; /** * 读取文件方式 */ var READ_FILE_TYPE; (function (READ_FILE_TYPE) { READ_FILE_TYPE[READ_FILE_TYPE["DATA_URL"] = 0] = "DATA_URL"; READ_FILE_TYPE[READ_FILE_TYPE["TEXT"] = 1] = "TEXT"; READ_FILE_TYPE[READ_FILE_TYPE["BINARY"] = 2] = "BINARY"; READ_FILE_TYPE[READ_FILE_TYPE["ARRAYBUFFER"] = 3] = "ARRAYBUFFER"; })(READ_FILE_TYPE || (READ_FILE_TYPE = {})); cc._RF.pop(); } if (nodeEnv) { __define(__module.exports, __require, __module); } else { __quick_compile_project__.registerModuleFunc(__filename, function () { __define(__module.exports, __require, __module); }); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2NyaXB0XFxta1xcdXRpbHNcXEZpbGVVdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7OztHQUdHO0FBQ0g7SUFBQTtJQW1HQSxDQUFDO0lBakdHOzs7OztPQUtHO0lBQ0ksZ0NBQWEsR0FBcEIsVUFBcUIsTUFBYyxFQUFFLFFBQThCO1FBQy9ELElBQUksT0FBTyxHQUF1QyxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxPQUFPLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQztZQUMxQixPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztZQUN6QyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNyQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztZQUM5QyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7WUFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3RDO1FBRUQsTUFBTSxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFDeEIsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdkMsT0FBTyxDQUFDLFFBQVEsR0FBRyxVQUFDLEtBQUs7WUFDckIsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQTtZQUN6QixJQUFJLEtBQUssSUFBSSxL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QUMsRUFMSSxjQUFjLEtBQWQsY0FBYyxRQUtsQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4vKipcclxuICog5paH5Lu25pON5L2c5bel5YW357G7XHJcbiAqIEBhdXRob3Ig6Jab6bi/5r2HXHJcbiAqL1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlVXRpbCB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmiZPlvIDmlofku7bpgInmi6nlmahcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBhY2NlcHRcclxuICAgICAqIEBwYXJhbSB7KGZpbGU6IEZpbGUpID0+IHZvaWR9IGNhbGxiYWNrXHJcbiAgICAgKiBAbWVtYmVyb2YgRmlsZVV0aWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9wZW5Mb2NhbEZpbGUoYWNjZXB0OiBzdHJpbmcsIGNhbGxiYWNrOiAoZmlsZTogRmlsZSkgPT4gdm9pZCkge1xyXG4gICAgICAgIGxldCBpbnB1dEVsOiBIVE1MSW5wdXRFbGVtZW50ID0gPEhUTUxJbnB1dEVsZW1lbnQ+ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGVfaW5wdXQnKTtcclxuICAgICAgICBpZiAoIWlucHV0RWwpIHtcclxuICAgICAgICAgICAgaW5wdXRFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICAgICAgICAgIGlucHV0RWwuaWQgPSAnZmlsZV9pbnB1dCc7XHJcbiAgICAgICAgICAgIGlucHV0RWwuc2V0QXR0cmlidXRlKCdpZCcsICdmaWxlX2lucHV0Jyk7XHJcbiAgICAgICAgICAgIGlucHV0RWwuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2ZpbGUnKTtcclxuICAgICAgICAgICAgaW5wdXRFbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2ZpbGVUb1VwbG9hZCcpO1xyXG4gICAgICAgICAgICBpbnB1dEVsLnN0eWxlLm9wYWNpdHkgPSAnMCc7XHJcbiAgICAgICAgICAgIGlucHV0RWwuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gICAgICAgICAgICBpbnB1dEVsLnNldEF0dHJpYnV0ZSgnbGVmdCcsICctOTk5cHgnKTtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnB1dEVsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGFjY2VwdCA9IGFjY2VwdCB8fCBcIi4qXCI7XHJcbiAgICAgICAgaW5wdXRFbC5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsIGFjY2VwdCk7XHJcblxyXG4gICAgICAgIGlucHV0RWwub25jaGFuZ2UgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGZpbGVzID0gaW5wdXRFbC5maWxlc1xyXG4gICAgICAgICAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGZpbGUgPSBmaWxlc1swXTtcclxuICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soZmlsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaW5wdXRFbC5jbGljaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6K+75Y+W5pys5Zyw5paH5Lu25pWw5o2uXHJcbiAgICAgKiBAcGFyYW0ge0ZpbGV9IGZpbGVcclxuICAgICAqIEBwYXJhbSB7UkVBRF9GSUxFX1RZUEV9IHJlYWRUeXBlXHJcbiAgICAgKiBAcGFyYW0geygocmVzdWx0OiBzdHJpbmcgfCBBcnJheUJ1ZmZlcikgPT4gdm9pZCl9IGNhbGxiYWNrXHJcbiAgICAgKiBAbWVtYmVyb2YgRmlsZVV0aWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRMb2NhbEZpbGUoZmlsZTogRmlsZSwgcmVhZFR5cGU6IFJFQURfRklMRV9UWVBFLCBjYWxsYmFjazogKHJlc3VsdDogc3RyaW5nIHwgQXJyYXlCdWZmZXIpID0+IHZvaWQpIHtcclxuICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGV2ZW50KSB7XHJcbiAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlYWRlci5yZWFkeVN0YXRlID09IEZpbGVSZWFkZXIuRE9ORSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlYWRlci5yZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgc3dpdGNoIChyZWFkVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIFJFQURfRklMRV9UWVBFLkRBVEFfVVJMOlxyXG4gICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBSRUFEX0ZJTEVfVFlQRS5URVhUOlxyXG4gICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7Ly8g5L2c5Li65a2X56ym5Liy6K+75Ye6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBSRUFEX0ZJTEVfVFlQRS5CSU5BUlk6XHJcbiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgUkVBRF9GSUxFX1RZUEUuQVJSQVlCVUZGRVI6XHJcbiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDkv53lrZjmlbDmja7liLDmnKzlnLBcclxuICAgICAqIEBwYXJhbSB7Kn0gZmlsZU5hbWVUb1NhdmVBcyDopoHkv53lrZjnmoTmlofku7blkI1cclxuICAgICAqIEBwYXJhbSB7Kn0gdGV4dFRvV3JpdGUg6KaB5L+d5a2Y55qE5paH5Lu25YaF5a65XHJcbiAgICAgKiBAbWVtYmVyb2YgRmlsZVV0aWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNhdmVGb3JCcm93c2VyKGZpbGVOYW1lVG9TYXZlQXM6IGFueSwgdGV4dFRvV3JpdGU6IGFueSkge1xyXG4gICAgICAgIGlmIChjYy5zeXMuaXNCcm93c2VyKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rWP6KeI5ZmoXCIpO1xyXG4gICAgICAgICAgICBsZXQgdGV4dEZpbGVBc0Jsb2IgPSBuZXcgQmxvYihbdGV4dFRvV3JpdGVdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyB9KTtcclxuICAgICAgICAgICAgbGV0IGRvd25sb2FkTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgICAgICAgICBkb3dubG9hZExpbmsuZG93bmxvYWQgPSBmaWxlTmFtZVRvU2F2ZUFzO1xyXG4gICAgICAgICAgICBkb3dubG9hZExpbmsuaW5uZXJIVE1MID0gXCJEb3dubG9hZCBGaWxlXCI7XHJcbiAgICAgICAgICAgIGlmICh3aW5kb3cud2Via2l0VVJMICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIC8vIENocm9tZSBhbGxvd3MgdGhlIGxpbmsgdG8gYmUgY2xpY2tlZCAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgLy8gd2l0aG91dCBhY3R1YWxseSBhZGRpbmcgaXQgdG8gdGhlIERPTS4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGRvd25sb2FkTGluay5ocmVmID0gd2luZG93LndlYmtpdFVSTC5jcmVhdGVPYmplY3RVUkwodGV4dEZpbGVBc0Jsb2IpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gRmlyZWZveCByZXF1aXJlcyB0aGUgbGluayB0byBiZSBhZGRlZCB0byB0aGUgRE9NICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAvLyBiZWZvcmUgaXQgY2FuIGJlIGNsaWNrZWQuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBkb3dubG9hZExpbmsuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKHRleHRGaWxlQXNCbG9iKTtcclxuICAgICAgICAgICAgICAgIC8vIGRvd25sb2FkTGluay5vbmNsaWNrID0gZGVzdHJveUNsaWNrZWRFbGVtZW50OyAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRMaW5rLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG93bmxvYWRMaW5rKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG4vKipcclxuICog6K+75Y+W5paH5Lu25pa55byPXHJcbiAqL1xyXG5lbnVtIFJFQURfRklMRV9UWVBFIHtcclxuICAgIERBVEFfVVJMLC8vIHJlYWRBc0RhdGFVUkwsIGJhc2U2NFxyXG4gICAgVEVYVCwvLyByZWFkQXNUZXh0XHJcbiAgICBCSU5BUlksLy8gcmVhZEFzQmluYXJ5U3RyaW5nXHJcbiAgICBBUlJBWUJVRkZFUiwvLyByZWFkQXNBcnJheUJ1ZmZlclxyXG59Il19