如何解决离子应用程序中的文件路径

时间:2017-02-03 13:11:51

标签: javascript angularjs cordova ionic-framework

我花了一整天的时间在谷歌上搜索并在各种平台上询问。我找不到简单地在离子应用程序中选择和上传文件的方法(pdf,rtf等)。

var theOnesINeed = compose(...); var theOtherOnesINeed = compose(...); var intoADifferentFormat = function(value){ return ... } function(event){ var a = someList.filter(theOnesINeed).map(intoADifferentFormat); var b = someOtherList.filter(theOtherOnesINeed); var rows = a.concat(b).map(wrap('<li>', '</li>')); document.querySelector('#youYesYou').innerHTML = rows.join('\n'); } 函数中,我需要提供文件路径。我试过cordovaFileTransfer.upload(假冒路径)等但没有成功。我的previous question未得到答复,因此我需要再次提问。

&#13;
&#13;
document.getElementById('file').value
&#13;
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.upload = function(){
    document.getElementById('fileu').click();
$scope.fileNameChanged = function(filoename) {
  console.log(filoename.files);
				
}}})
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

我正在使用cordova-plugin-filecordova-plugin-filepath.您可以使用

window.resolveLocalFileSystemURL( filePath, function (fileEntry) 
{
console.log('got a file entry');
  fileEntry.file(function (file) {
    console.log('created file');
    console.log(file.localURL);
  })
}, function (e) {
  console.log('Error resolving fs url', e);
});

filePath是我在拍照或从图库中选择一张时从cordova获得的变量,这解决了上传所需的真实路径。您也可以使用

window.FilePath.resolveNativePath(filePath, function(path) { 
// stuff
}, function (e) {
          console.log('Error resolving fs url', e);
        });

但对我来说,第一个在不同版本的android,ios等上工作得更好。 经过大量的反复试验后,我发现对于iOS,有时您需要将file://放在filePath前面,否则无法正确解析路径。

希望我帮助过你。