我的服务器全局变量名称为:DOCUMENT_ROOT。
这是我的config.php文件:
<?php
define ('UPLOAD_DIR',$_SERVER['DOCUMENT_ROOT'].'/resouces/');
test.php文件
<?php
$photo='myimage.php';
echo '<img src="'.UPLOAD_DIR.$photo.'">';
问题在于测试代码时..图像不显示,目录以:
开头C:// program files / easyPHP / www / resources
而不是
因为它应该是......我试图在httpd.conf文件中更新这一行:
DocumentRoot "${path}/www"
到
DocumentRoot "http://127.0.0.1:8888/www"
但是服务器声明了一个错误:
提前谢谢: - )
答案 0 :(得分:3)
你误解了DOCUMENT_ROOT
;它是提供代码的根目录的路径,而不是IP,这就是您在屏幕截图中收到错误的原因。此外,当您上传文件时,实际上想要文件路径,而不是服务器IP。
来自文档:
[Document root is]正在执行当前脚本的文档根目录,如服务器配置文件中所定义。
当您将路径放入HTML中的文件时,使用服务器的IP非常非常不良做法;它应该是一个文件路径。使用相对文件路径而不是绝对路径要好得多;它向公众揭示了更少关于您网站的信息,使其更加安全。
答案 1 :(得分:2)
您在物理路径和WWW URL之间感到困惑。
答案 2 :(得分:1)
$_SERVER['DOCUMENT_ROOT']
是真实文件系统上的路径。
你不需要它。
只需使用
define ('UPLOAD_DIR','/resouces/');
请勿在网站上的文件系统和路径上混淆路径
它们可能没有任何共同之处(但在默认情况下请求URI
发送到$_SERVER['DOCUMENT_ROOT'].URI
)
您也可以使用
define ('UPLOAD_DIR_FILEPATH',$_SERVER['DOCUMENT_ROOT'].'/resouces/'); //to use in upload, renaming, deleting etc
define ('UPLOAD_DIR_WWW','/resouces/'); //to show URLs
您不需要在每个级别上声明它,因为路径从根/