如何在Javascript中读取目录中的文件

时间:2018-01-15 11:18:23

标签: javascript directory xmlhttprequest

我必须从给定目录中读取文件名作为URL 例如。

http://somesite.whereisthis/directoryThatContainsFiles

我想过像

这样的XMLHttpRequest
xhr.open('GET', 'http://somesite.whereisthis/directoryThatContainsFiles', true);

然后以某种方式读取此文件夹中的文件名称,但我无法使其工作:/

如何在纯javascript中读取它们?(没有jquery或其他东西)有没有办法在console.log()中列出它?

1 个答案:

答案 0 :(得分:0)

你期待“Javascript”

如果没有服务器端的帮助,你就无法做到。例如,您可以使用PHP将目录列表数据作为JSON响应发送。

http://hostaddress/endpointdirectory

  {
      "Folder" : "Data"
      "Files"  : [ "File1" , "File2" ]
  }

否则,使用XMLHttpRequest()可以解决简单的黑客问题,您将获得HTML DOM响应。

 <html>
 <head>
 <title>Index of /directoryWantToList</title>
 </head>
  <body>
 <h1>Index of /directoryWantToList</h1>
 <table>
 <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a 
  href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th>
  <th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a>
  </th></tr>
  <tr><th colspan="5"><hr></th></tr>
  <tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td>
  <td><a href="/">Parent Directory</a>       </td><td>&nbsp;</td><td 
   align="right">  - </td><td>&nbsp;</td></tr>
  <tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a 
  href="File1.txt">File1.txt</a>              </td><td align="right">2018-
  01-15 16:52  </td><td align="right">  0 </td><td>&nbsp;</td></tr>
  <tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a 
  href="File2.txt">File2.txt</a>              </td><td align="right">2018-
  01-15 16:52  </td><td align="right">  0 </td><td>&nbsp;</td></tr>
  <tr><th colspan="5"><hr></th></tr>
  </table>
  <address>Apache/2.4.29 (Win32) OpenSSL/1.1.0g PHP/7.2.0 Server at 
  localhost Port 80</address>
  </body></html>

使用这个DOM响应你需要通过解析那些糟糕的黑客来获取那些文件名.......

Javascript今天发展很多,但仍局限于客户端。

参考线程:

  1. Listing files of a directory in a webpage

  2. get a list of all folders in directory