zip.js:无法识别文件格式,javascript
zip.js : File format is not recognized, javascript
我从 HTTP GET 请求中得到一个 zip 文件响应,其中包含另外两个扩展名为 .log 和 .out 的文件。我正在使用 zip.js 成功地从 .log 文件读取数据,但是当我尝试传递文本数据时,从 .log 文件读取,作为事件的参数,我得到错误:
"File Format is not recognized"
我在客户端执行此操作 javascript。
这是我的代码:
var xhr = new XMLHttpRequest();
xhr.onload = function(e) {
var blobData = new Blob([this.response],{type : "application/zip"});
zip.createReader(new zip.BlobReader(blobData), function(zipReader){
zipReader.getEntries(function(entries){
entries[1].getData(new zip.TextWriter(), function(text){
console.log(text);
this.Emit("dataReady", {
data : text});
});
}.bind(this));
}.bind(this),this.onerror);
}.bind(this);
xhr.open("GET","path/to/url/file.zip",true);
xhr.setRequestHeader("Content-type","application/zip");
xhr.responseType = 'blob';
xhr.send();
我得到的错误是:
无法识别文件格式。
请指教,因为我正在使用 zip.js 并从第一个 time.Thanks 的 http 请求读取 zip 文件响应!
你能验证一下你在这一行 this
使用的是正确的
this.Emit("dataReady", { data : text});
我不确定您在哪里发出文本,但您可能在错误的对象上调用了 Emit。如果是这种情况,那么请看一下这个 link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call 并做一些快速测试之类的事情。请注意,我注意到您已经绑定了 "this"
var xhr = new XMLHttpRequest();
var _root = this;
xhr.onload = function(e) {
var blobData = new Blob([this.response],{type : "application/zip"});
zip.createReader(new zip.BlobReader(blobData), function(zipReader){
zipReader.getEntries(function(entries){
entries[1].getData(new zip.TextWriter(), function(text){
console.log(text);
_root.Emit("dataReady", {
data : text});
});
}.bind(this));
}.bind(this),this.onerror);
}.bind(this);
我从 HTTP GET 请求中得到一个 zip 文件响应,其中包含另外两个扩展名为 .log 和 .out 的文件。我正在使用 zip.js 成功地从 .log 文件读取数据,但是当我尝试传递文本数据时,从 .log 文件读取,作为事件的参数,我得到错误:
"File Format is not recognized"
我在客户端执行此操作 javascript。
这是我的代码:
var xhr = new XMLHttpRequest();
xhr.onload = function(e) {
var blobData = new Blob([this.response],{type : "application/zip"});
zip.createReader(new zip.BlobReader(blobData), function(zipReader){
zipReader.getEntries(function(entries){
entries[1].getData(new zip.TextWriter(), function(text){
console.log(text);
this.Emit("dataReady", {
data : text});
});
}.bind(this));
}.bind(this),this.onerror);
}.bind(this);
xhr.open("GET","path/to/url/file.zip",true);
xhr.setRequestHeader("Content-type","application/zip");
xhr.responseType = 'blob';
xhr.send();
我得到的错误是:
无法识别文件格式。
请指教,因为我正在使用 zip.js 并从第一个 time.Thanks 的 http 请求读取 zip 文件响应!
你能验证一下你在这一行 this
使用的是正确的
this.Emit("dataReady", { data : text});
我不确定您在哪里发出文本,但您可能在错误的对象上调用了 Emit。如果是这种情况,那么请看一下这个 link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call 并做一些快速测试之类的事情。请注意,我注意到您已经绑定了 "this"
var xhr = new XMLHttpRequest();
var _root = this;
xhr.onload = function(e) {
var blobData = new Blob([this.response],{type : "application/zip"});
zip.createReader(new zip.BlobReader(blobData), function(zipReader){
zipReader.getEntries(function(entries){
entries[1].getData(new zip.TextWriter(), function(text){
console.log(text);
_root.Emit("dataReady", {
data : text});
});
}.bind(this));
}.bind(this),this.onerror);
}.bind(this);