【发布时间】:2015-07-10 14:40:36
【问题描述】:
我想在我的 Windows 机器上显示存储在本地文件系统中的图像。
文件路径:D:/farewell/new/imagename.JPG
<html>
<head>
<title>
Images Gallery
</title>
</head>
<body>
<?php
$img="D:/farewell/new/IMG_0603.JPG";
echo "<img src='$img' width=\"300\"/>";
?>
</body>
</html>
网页没有加载任何图片,但是Inspect Element显示如下错误:
不允许加载本地资源:file:///D:/farewell/new/IMG_0603.JPG images.php:10
我怎样才能允许 PHP 或 Apache 网络服务器或 Chrome 浏览器(无论如何)允许访问存储在其他分区中的图像?
编辑:
我想访问 D:/farewell/new/ 中的所有图像。我尝试在 httpd.conf 下为其设置别名,但这没有用,因为 url 无法提供给标签。
Alias /farewell/ "D:/farewell/2/"
<Directory "D:/farewell/2">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
【问题讨论】:
-
你不能。允许基于 Web 的内容请求/显示“本地”内容将是一个巨大的安全漏洞。即使有可能,让服务器告诉浏览器“相信我,没关系”,这将是一个更糟糕的安全问题。
-
@MarcB b 我知道它会,但我想在本地主机上使用它。我的服务器从不上线,我将它用于我将离线使用的应用程序。
-
如果都是本地的,那么只需将 apache 设置为在您的文档根目录中使用这个
d:\farewell,例如一个Alias。 -
PHP 可以访问服务器机器的本地文件系统并通过 http 提供(即发送)任何内容。浏览器可以访问客户端机器的本地文件系统,但由于它处理的是通过 http 发送的文档(即不是客户端文件系统的一部分),它不允许从“在”文件中。即使碰巧服务器和客户端在同一台机器上也是如此。访问是可能的,例如通过html5文件api,见html5rocks.com/en/tutorials/file/dndfiles
-
是的,循环重新开始:转到评论 #1 ;-)
标签: php