1

好吧,使用 HTML5 文件处理 api 我们可以通过 inpty 类型文件的协作来读取文件。像 /images/myimage.png 等带有 pat 的准备好的文件怎么样?

任何形式的帮助表示赞赏

4

2 回答 2

3

是的,如果它是铬!使用文件系统,您将能够做到这一点。

于 2013-04-11T12:26:00.520 回答
1

简单的答案是;不。当您HTML/CSS/images/JavaScript下载到客户端时,您正在脱离服务器。

简单的流程图

  • 用户在浏览器中请求 URL(例如;www.mydomain.com/index.html
  • 服务器读取并获取所需的文件 ( www.mydomain.com/index.html)
  • index.html 和它的链接资源将被下载到用户的浏览器
  • 用户的浏览器将呈现 HTML 页面
    • 用户的浏览器只会获取请求附带的文件(images/someimages.png 和 scripts/jquery.js 之类的东西)

解释

您在这里面临的问题是,当 HTML 在本地呈现时,它不再与服务器链接,因此请求/images/包含文件的内容在逻辑上不具有可比性,因为它驻留在服务器上。

解决方法

你可以做什么,但这会忽略问题的原因,是在 JSP/PHP/ASP/等中制作一个服务器端脚本。然后,此脚本将遍历您想要的目录。在 PHP 中,您可以使用opendir()( http://php.net/opendir ) 来执行此操作。

通过 XHR/AJAX 调用,您可以请求 PHP 页面返回目录列表。最简单的方法是$.post()结合使用 jQuery 的函数和 JSON。

警告!

您需要记住,如果您使用解决方法,您将存储一个链接,以便所有人都能看到您请求的在线目录中的内容(例如http://www.mydomain.com/my_image_dirlist.php,然后将返回所有内容的字符串列表(或更少基于某些服务器端脚本中的规则)在http://www.mydomain.com/images/.

笔记

  • http://www.html5rocks.com/en/tutorials/file/filesystem/(似乎只在 Chrome 中工作,但仍然不是你想要的)
  • 如果您不需要文件夹中的所有文件,而只需要 URL 请求中已下载到浏览器缓存中的那些文件;您可以尝试在线搜索访问当前加载页面的浏览器缓存(下载的文件)。或者制作一个 DOM-walker 和 CSS 阅读器(正则表达式?)来查看所有文件关系的位置。
于 2013-03-26T12:14:20.053 回答