我必须在angularjs中用文件名填充数组

时间:2015-11-10 17:02:45

标签: javascript arrays angularjs string filenames

我必须用文件名填充数组。它是一个本地文件夹,里面有很多文件,我需要文件的名称"进入"数组。 fileNames [0] = australia.jpg fileNames [1] = italy.jpg 等等。

有什么想法吗?

感谢。

我尝试了这个,但它不起作用:

 var getFilesNames = function(){
      var folderPath = Folder ("C:\Users\Giulio\Desktop");
      var toteTempFiles = toteTempPath.getFiles();
      var namesArr = [];
      for(var i=0; i<toteTempFiles.length; i++){
        var thisFile = toteTempFiles[i];
        myNames.push(thisFile.name);
      }
    }

1 个答案:

答案 0 :(得分:0)

至于我意识到它不可能窥探用户文件系统,这将是一个相当大的安全问题。

然而,使用新的File API,用户可以访问某些文件,允许您获取有关这些文件的信息并上传它们。但是,这确实涉及用户必须执行操作。

因此,您可以稍微改变您的要求:

<input type="file" id="input" multiple />

和JS

var inputElement = document.getElementById("input");
inputElement.addEventListener("change", handleFiles, false);

function handleFiles() {
    var fileList = [];

    for(var i = 0; i < this.files.length; i++) {
        fileList.push(this.files[i].name);   
    }

    console.log(fileList);
}

基本上,您有一个用户与之交互的输入。当其值发生变化时,选择了一些文件,onchange处理程序会触发,为您提供所选文件的信息。

重要的是要注意this.files不是数组,而是像对象一样的数组,如arguments变量。所以你不能mapforEach就可以了。

因此,在您的使用中,它会稍微改变,用户必须选择所需文件夹中的所有文件。然后,您可以继续获取所需的所有信息。

这是一个小提琴:http://jsfiddle.net/q97dgjso/

可以帮助您的一些资源:http://www.html5rocks.com/en/tutorials/file/dndfiles/ https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications https://developer.mozilla.org/en/docs/Web/API/File