2012-05-16 89 views
2

我的本地主机网站有问题。本地主机子文件夹PHP

所以我在这里解释我的问题,我有一个文件夹在localhost/sg /所有php文件。如果我想显示一张图片,例如我应该使用/sg/upload/myfile.jpg。

但是,如果我上传我的服务器上的php文件不起作用,因为我的www文件夹中没有/ sg /文件夹。

所以我的问题是,有可能有一个脚本谁可以管理这个离线和在线?

如果您有疑问,请不要犹豫。

谢谢。

+0

你的接受比例为50%,请到您的问题,并接受一个合适的答案 – John

回答

2

集开发服务器,例如您的网站路径 的DocumentRoot指令定义常量:

离线:

<?php 
define ("SITEPATH","http://localhost/sg/upload/"); 
<? 

在线:

<?php 
define ("SITEPATH","http://www.yoursite.com/upload/"); 
<? 

然后用这个常数(SITEPATH)来查找文件上传目的地

<?php 
$destination = SITEPATH.$filename; 
?> 
+0

非常感谢,这是工作! –

+0

@Julien_he:还有['__FILE__'和'__DIR__'](http://php.net/manual/en/language.constants.predefined.php),无需代表您做任何事情。你应该更喜欢惯例而不是配置。 – hakre

2

您可以使用配置文件根据网站是本地还是生产来动态设置图像和其他文件的路径。

+0

你应该偏向于配置惯例,因为你并不需要配置的是,该网站本身结构[并不差](HTTP: //stackoverflow.com/a/10622028/367456)。 – hakre

0

我认为你的问题与PHP的服务器(Apache?)更相关。

我想回答你的问题是你的(Apache的?)文件的正确配置,更具体地无论在生产和上传路径相对

0

广东话还上传的图片文件夹/sg/upload/到生产服务器?发布程序时,依赖关系也需要发布。在你的情况下,该文件夹是你的项目的依赖。你需要使用John建议的配置文件来为生产环境指定不同的上传文件夹,或者你也需要简单地上传该文件夹。

0

通常只有BASEDIR不同,但不是网站结构:

development: http://localhost/project-blue/ 

production: http://project-blue.example.com/ 

在该目录中放置一个PHP文件,比方说index.php

http://localhost/project-blue/index.php 

如果它应该显示一个URL上传的图片名为upload/picture.jpg,您只需将其正确链接即可:

<img src="upload/picture.jpg"> 

那么这将会使浏览器获得此此网址:

http://localhost/project-blue/upload/picture.jpg 

这将在两个工作,开发和生产:

http://project-blue.example.com/upload/picture.jpg 

因此,实际上没有太多你需要关心这里。