/* * 文件上传模型 */ class FILE { constructor(public url: string, public domid: string) { this.url = this.url; this.domid = this.domid; } //提交数据 public post(callback: Function, loading: Function) { var request = new XMLHttpRequest(); var formData = new FormData(); var filedom: any = document.getElementById(this.domid); formData.append('images[]', filedom.files); request.open("post", this.url, true); //请求结束 request.onload = function () { if (request.readyState == 4 && request.status == 200) { var response = JSON.parse(request.responseText); callback(response); } else { callback({ result: false, message: "请求失败" }); } } //数据发送中 request.upload.onprogress = function (evt) { loading(Math.round(evt.loaded * 100 / evt.total)); } //数据发送失败 request.onerror = function () { callback({ result: false, message: "请求失败" }); } request.send(formData); } } class READER { constructor(public filedomid: string) { this.filedomid = filedomid; } public read(callback: Function) { var filedom: any = document.getElementById(this.filedomid); filedom.files.forEach((e: any) => { this.doRead(e, (base64: string) => { callback(base64); }); }); } doRead(file: any, callback: Function) { var fileReader = new FileReader(); fileReader.onload = function () { if (callback) callback(fileReader.result); } fileReader.readAsDataURL(file); } } export { FILE, READER }