我正在使用一个表单将文件上传到特定的上传文件夹。现在,在我的本地开发环境中,本地文件夹被硬编码在一个变量中,如下所示
$destination = 'c:/public_html/discography/artwork/';一旦脚本完成并准备好在实时环境中移动,上传文件夹将为
$destination = '/home/my_name/public_html/discography/artwork/';我的问题如下:现在,这两个变量都是硬编码的。如何根据环境选择正确的路径?
如果可能,我希望它在define语句中,这样我就可以在脚本中的任何地方使用它:
define('UPLOAD_ARTWORK', ????);本地:
$destination = 'c:/public_html/discography/artwork/';
$move = move_uploaded_file($_FILES['artwork']['tmp_name'], $destination.$_FILES['artwork']['name']);现场直播:
$destination = '/home/my_name/public_html/discography/artwork/';
$move = move_uploaded_file($_FILES['artwork']['tmp_name'], $destination.$_FILES['artwork']['name']);许愿
define('UPLOAD_ARTWORK', ????);
$move = move_uploaded_file($_FILES['artwork']['tmp_name'], UPLOAD_ARTWORK.$_FILES['artwork']['name']);谢谢
发布于 2011-08-13 07:20:23
你走在正确的道路上。您所需要的就是确定脚本是在本地运行还是在活动服务器上运行。如果您使用的是dev.example.com或ip地址ala 127.0.0.1,这可能是一个子域。然后你可以这样写它。
switch($_SERVER['HTTP_HOST']){
case "dev.example.com":
define('UPLOAD_ARTWORK','c:/public_html/discography/artwork/');
break;
default:
define('UPLOAD_ARTWORK','/home/my_name/public_html/discography/artwork/');
}
$move = move_uploaded_file($_FILES['artwork']['tmp_name'], UPLOAD_ARTWORK.$_FILES['artwork']['name']);发布于 2011-08-13 07:19:15
根据您的vhosts设置方式,下面的内容将会起作用:
switch($_SERVER['HTTP_HOST'])
{
case 'dev.mysite.com':
case 'localhost':
define('UPLOAD_ARTWORK','c:/public_html/discography/artwork/');
break;
case 'www.mysite.com':
define('UPLOAD_ARTWORK','/home/my_name/public_html/discography/artwork/');
break;
}发布于 2011-08-13 07:17:16
为什么不像这样的测试
0 == strcmp('127.0.0.1', $_SERVER['SERVER_ADDR'])https://stackoverflow.com/questions/7047275
复制相似问题