|
@@ -7,7 +7,6 @@ export default class FileUtil {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 打开文件选择器
|
|
* 打开文件选择器
|
|
|
- *
|
|
|
|
|
* @param {string} accept
|
|
* @param {string} accept
|
|
|
* @param {(file: File) => void} callback
|
|
* @param {(file: File) => void} callback
|
|
|
* @memberof FileUtil
|
|
* @memberof FileUtil
|
|
@@ -15,7 +14,6 @@ export default class FileUtil {
|
|
|
public openLocalFile(accept: string, callback: (file: File) => void) {
|
|
public openLocalFile(accept: string, callback: (file: File) => void) {
|
|
|
let inputEl: HTMLInputElement = <HTMLInputElement>document.getElementById('file_input');
|
|
let inputEl: HTMLInputElement = <HTMLInputElement>document.getElementById('file_input');
|
|
|
if (!inputEl) {
|
|
if (!inputEl) {
|
|
|
- // console.log('xxxxxx createElement input');
|
|
|
|
|
inputEl = document.createElement('input');
|
|
inputEl = document.createElement('input');
|
|
|
inputEl.id = 'file_input';
|
|
inputEl.id = 'file_input';
|
|
|
inputEl.setAttribute('id', 'file_input');
|
|
inputEl.setAttribute('id', 'file_input');
|
|
@@ -30,11 +28,7 @@ export default class FileUtil {
|
|
|
accept = accept || ".*";
|
|
accept = accept || ".*";
|
|
|
inputEl.setAttribute('accept', accept);
|
|
inputEl.setAttribute('accept', accept);
|
|
|
|
|
|
|
|
- // inputEl.addEventListener('change', (event) => {
|
|
|
|
|
- // console.log('xxx onchange1', event, inputEl.value);
|
|
|
|
|
- // });
|
|
|
|
|
inputEl.onchange = (event) => {
|
|
inputEl.onchange = (event) => {
|
|
|
- // console.log('xxx onchange2', event, inputEl.files);
|
|
|
|
|
let files = inputEl.files
|
|
let files = inputEl.files
|
|
|
if (files && files.length > 0) {
|
|
if (files && files.length > 0) {
|
|
|
var file = files[0];
|
|
var file = files[0];
|
|
@@ -46,18 +40,16 @@ export default class FileUtil {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 读取本地文件数据
|
|
* 读取本地文件数据
|
|
|
- *
|
|
|
|
|
* @param {File} file
|
|
* @param {File} file
|
|
|
* @param {READ_FILE_TYPE} readType
|
|
* @param {READ_FILE_TYPE} readType
|
|
|
* @param {((result: string | ArrayBuffer) => void)} callback
|
|
* @param {((result: string | ArrayBuffer) => void)} callback
|
|
|
* @memberof FileUtil
|
|
* @memberof FileUtil
|
|
|
*/
|
|
*/
|
|
|
- public readLocalFile(file: File, readType: READ_FILE_TYPE, callback: (result: string | ArrayBuffer) => void) {
|
|
|
|
|
|
|
+ public readLocalFile(file: File, readType: READ_FILE_TYPE, callback: (result: string | ArrayBuffer) => void) {
|
|
|
var reader = new FileReader();
|
|
var reader = new FileReader();
|
|
|
reader.onload = function (event) {
|
|
reader.onload = function (event) {
|
|
|
if (callback) {
|
|
if (callback) {
|
|
|
if (reader.readyState == FileReader.DONE) {
|
|
if (reader.readyState == FileReader.DONE) {
|
|
|
- // console.log('xxx FileReader', event, reader.result);
|
|
|
|
|
callback(reader.result);
|
|
callback(reader.result);
|
|
|
} else {
|
|
} else {
|
|
|
callback(null);
|
|
callback(null);
|
|
@@ -69,8 +61,7 @@ export default class FileUtil {
|
|
|
reader.readAsDataURL(file);
|
|
reader.readAsDataURL(file);
|
|
|
break;
|
|
break;
|
|
|
case READ_FILE_TYPE.TEXT:
|
|
case READ_FILE_TYPE.TEXT:
|
|
|
- reader.readAsText(file); //作为字符串读出
|
|
|
|
|
- //reader.readAsText(file,'gb2312'); //默认是用utf-8格式输出的,想指定输出格式就再添加一个参数,像txt的ANSI格式只能用国标才能显示出来
|
|
|
|
|
|
|
+ reader.readAsText(file);// 作为字符串读出
|
|
|
break;
|
|
break;
|
|
|
case READ_FILE_TYPE.BINARY:
|
|
case READ_FILE_TYPE.BINARY:
|
|
|
reader.readAsBinaryString(file);
|
|
reader.readAsBinaryString(file);
|
|
@@ -83,12 +74,11 @@ export default class FileUtil {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 保存数据到本地
|
|
* 保存数据到本地
|
|
|
- *
|
|
|
|
|
- * @param {*} fileNameToSaveAs 要保存的文件名
|
|
|
|
|
- * @param {*} textToWrite 要保存的文件内容
|
|
|
|
|
|
|
+ * @param {*} fileNameToSaveAs 要保存的文件名
|
|
|
|
|
+ * @param {*} textToWrite 要保存的文件内容
|
|
|
* @memberof FileUtil
|
|
* @memberof FileUtil
|
|
|
*/
|
|
*/
|
|
|
- public saveForBrowser(fileNameToSaveAs, textToWrite,) {
|
|
|
|
|
|
|
+ public saveForBrowser(fileNameToSaveAs: any, textToWrite: any) {
|
|
|
if (cc.sys.isBrowser) {
|
|
if (cc.sys.isBrowser) {
|
|
|
console.log("浏览器");
|
|
console.log("浏览器");
|
|
|
let textFileAsBlob = new Blob([textToWrite], { type: 'application/json' });
|
|
let textFileAsBlob = new Blob([textToWrite], { type: 'application/json' });
|
|
@@ -113,7 +103,9 @@ export default class FileUtil {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
-// 读取文件方式
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ * 读取文件方式
|
|
|
|
|
+ */
|
|
|
enum READ_FILE_TYPE {
|
|
enum READ_FILE_TYPE {
|
|
|
DATA_URL,// readAsDataURL, base64
|
|
DATA_URL,// readAsDataURL, base64
|
|
|
TEXT,// readAsText
|
|
TEXT,// readAsText
|