如何从给定文件夹中检索文件名

时间:2015-11-26 09:32:16

标签: jquery html ajax node.js

这里我试图从给定的目录中获取所有文件名的列表。在这个URL(http://localhost:3000/dir)中,我的目录名为“/usr/local".

我正在尝试从“/ usr / local”目录中检索扩展名为“.txt”的所有文件。

由于以下错误,我无法显示文件名:

阻止跨源请求:同源策略禁止在http://localhost:3000/dir读取远程资源。 (原因:CORS标题'Access-Control-Allow-Origin'丢失了。)我如何克服这个问题。任何人都可以帮助我...

我的Sample.html:

<html>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<body>

<div id="fileNames"></div>


<script type="text/javascript">
$(window).load(function(){
   var fileExt = ".txt";

        $(document).ready(function(){

            $.ajax({

                url: 'http://localhost:3000/dir',
                success: function (data) {
                    console.log(data);
                   $("#fileNames").html('<ul>');

                    $(data).find("a:contains(" + fileExt + ")").each(function () {
                        $("#fileNames").append( '<li>'+$(this).text()+'</li>');
                    });
                    $("#fileNames").append('</ul>');
                }
            });

        });
});

</script>
</body>
</html>

3 个答案:

答案 0 :(得分:0)

关于目录中的列表 https://nodejs.org/api/fs.html#fs_fs_readdir_path_callback

var fs=require('fs');
fs.readdir('./',function(err,files){// './' - is current directory
    console.log(files);
});

关于错误 - 尝试在终端curl http://localhost:3000/dir中执行 有两种方法 - 服务器错误或客户端错误。

答案 1 :(得分:0)

** Firstly we will have to upload files using FTP on accessible location then using this code we can get the files names. #In my case i am redirecting to the file location.

$(document).ready(function() {
      GetDirectoryFiles(); //calling of function
    });

    function GetDirectoryFiles() { //function Definition for Get All FileNames Of Directory
      $.ajax({
        type: "GET",
        url: "http://localhost:55304/TestViewsGoogleImgChanged/",
        contentType: "application/html; charset=utf-8",
        data: null,
        dataType: "html",
        success: function(data) {
          var pagedata = $.parseHTML(data);
          var tabledata = $.parseHTML(pagedata[9].innerHTML);
          for (var i = 0; tabledata.length / 2; i++) {
            if (tabledata[i].textContent.indexOf('.cshtml') > 0) {
              window.open('http://123.com/' + tabledata[i].textContent.split(".cshtml")[0], '_blank')
            }
          }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
          alert(textStatus + '-----' + errorThrown);
        }
      });
    }

答案 2 :(得分:0)

使用node.js,您可以使用:

var fs = require('fs');
var files = fs.readdirSync('/usr/local/');

然后使用javascript数组.split()功能,您可以找到并将生成的文件缩小到仅.txt文件。我不确定这是否有效,因为我自己不使用node.js,我从另一个stackoverflow问题得到了这个答案,并为你修改了它:Get list of filenames in folder with Javascript