Alb*_*rto 5 javascript performance android cordova sapui5
我想要的:快速将文件复制/移动到路径.也许从sapui5上的FileUploader从File/Blob对象获取FileEntry.
输入:FileUploader
输出:文件对象所以我通过执行以下操作选择它时得到文件:
sap.ui.getCore().byId('file-uploader-id').oFileUpload.files[0];
Run Code Online (Sandbox Code Playgroud)
所以我必须将它复制到另一个位置:" cordova.file .externalCacheDirectory".但FileUploader不为所选项提供完整路径值(出于安全原因).
我尝试了什么:
var sPath = URL.createObjectURL(oFile);
var pCopyFrom = new Promise((resolve, reject) => {
window.resolveLocalFileSystemURL(sPath, resolve, reject);
});
var pCopyTo = new Promise((resolve, reject) => {
var sExternalCachePath = cordova.file.externalCacheDirectory;
window.resolveLocalFileSystemURL(sMediaPath, resolve, reject);
});
Promise.all([pCopyFrom, pCopyTo]).then(aValues => {
aValues[0].moveTo(aValues[1], aValues[0].name, cbSuccess, cbError);
});
Run Code Online (Sandbox Code Playgroud)
结果:
解决方案似乎不起作用,因为生成的路径不可用(错误代码5),此路径无效,因此使用它.
可能的方法:
目前的解决方案是什么(但真的很慢):
使用FileWritter编写文件.如果我有路径并且我将上述代码用于视频(持续5秒),则花费不到1秒(感谢FileEntry)来复制/移动它(使用摄像头捕获或使用cordova插件进行视频捕获-媒体捕获,提供文件的路径),而使用FileWritter方法花费10秒钟来编写它.
谢谢你阅读.我会上传任何新的,因为我有它.
最终的解决方案是我在问题上所说的第二个选项,更改输入法:
不要使用FileUploader作为输入,而是使用名为File Selector的插件。
您可以获取 FileName、URI、Mime 类型和文件扩展名
所以现在我可以使用FileEntry更快地移动/复制文件。
无论如何,如果我找到与这个主题相关的内容,我会更新这个答案。
谢谢。
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |