使用三星的 FileReader 读取文件
Read file with FileReader from a Samsung
我在尝试从三星读取文件宽度的 FileReader 时遇到问题。在其他设备上它工作正常。
这是 reader 服务脚本:
function readFileAsync(file) {
var p = $q.defer();
var reader = new FileReader();
reader.onload = function(event) {
console.log('[FileReader] Success in read ' + JSON.stringify(event));
//var byteFile = new Int8Array(event.target.result);
//p.resolve(byteFile);
p.resolve(event.target.result);
};
reader.onabort = function(reason) {
console.log('[FileReader] abort ' + JSON.stringify(reason));
p.reject(reason);
reader.abort();
}
reader.onerror = function(err) {
console.log('[FileReader] ' + JSON.stringify(err));
p.reject(err);
};
// for ios
var localFileURL = file.fullPath.indexOf('file:/') == 0 ? file.fullPath : 'file://' + file.fullPath;
window.resolveLocalFileSystemURL(localFileURL, function (fileEntry) {
fileEntry.file(function (validFile) {
reader.readAsArrayBuffer(validFile);
});
});
return p.promise;
}
这是参数"file":
{
"name": "20161201_134758.mp4",
"localURL": "cdvfile://localhost/sdcard/DCIM/Camera/20161201_134758.mp4",
"type": "video/mp4",
"lastModified": null,
"lastModifiedDate": 1480610881000,
"size": 5464040,
"start": 0,
"end": 0,
"fullPath": "file:/storage/emulated/0/DCIM/Camera/20161201_134758.mp4"
}
这是 'onerror' 事件中出现的错误:
{
"type": "error",
"bubbles": false,
"cancelBubble": false,
"cancelable": false,
"lengthComputable": false,
"loaded": 0,
"total": 0,
"target": {
"_readyState": 2,
"_error": {
"code": 1
},
"_result": null,
"_progress": 0,
"_localURL": "cdvfile://localhost/sdcard/DCIM/Camera/20161201_134758.mp4",
"_realReader": {}
}
}
我受困于此,所以任何建议都会有所帮助。
谢谢
只需从我的 phone 添加权限...
facepalm
我在尝试从三星读取文件宽度的 FileReader 时遇到问题。在其他设备上它工作正常。
这是 reader 服务脚本:
function readFileAsync(file) {
var p = $q.defer();
var reader = new FileReader();
reader.onload = function(event) {
console.log('[FileReader] Success in read ' + JSON.stringify(event));
//var byteFile = new Int8Array(event.target.result);
//p.resolve(byteFile);
p.resolve(event.target.result);
};
reader.onabort = function(reason) {
console.log('[FileReader] abort ' + JSON.stringify(reason));
p.reject(reason);
reader.abort();
}
reader.onerror = function(err) {
console.log('[FileReader] ' + JSON.stringify(err));
p.reject(err);
};
// for ios
var localFileURL = file.fullPath.indexOf('file:/') == 0 ? file.fullPath : 'file://' + file.fullPath;
window.resolveLocalFileSystemURL(localFileURL, function (fileEntry) {
fileEntry.file(function (validFile) {
reader.readAsArrayBuffer(validFile);
});
});
return p.promise;
}
这是参数"file":
{
"name": "20161201_134758.mp4",
"localURL": "cdvfile://localhost/sdcard/DCIM/Camera/20161201_134758.mp4",
"type": "video/mp4",
"lastModified": null,
"lastModifiedDate": 1480610881000,
"size": 5464040,
"start": 0,
"end": 0,
"fullPath": "file:/storage/emulated/0/DCIM/Camera/20161201_134758.mp4"
}
这是 'onerror' 事件中出现的错误:
{
"type": "error",
"bubbles": false,
"cancelBubble": false,
"cancelable": false,
"lengthComputable": false,
"loaded": 0,
"total": 0,
"target": {
"_readyState": 2,
"_error": {
"code": 1
},
"_result": null,
"_progress": 0,
"_localURL": "cdvfile://localhost/sdcard/DCIM/Camera/20161201_134758.mp4",
"_realReader": {}
}
}
我受困于此,所以任何建议都会有所帮助。 谢谢
只需从我的 phone 添加权限... facepalm