PHP:使用PHP将文件保存到不同的根目录?

时间:2009-04-14 19:02:43

标签: php php4

当我使用PHP通过move_uploaded_file()保存上传的文件时,我可以使用绝对URL我必须使用相对的URL。我的站点有2个根目录,一个用于http端,另一个用于https端:httpdocs和httpsdocs。因此,如果我的脚本位于https端,如何将文件保存到http侧的某个位置?

谢谢!

更新 好吧所以我似乎正在使用错误的绝对路径约定我这样做:

$dir = 'https://www.mydomain.com/masonic_images/';
move_uploaded_file($_FILES['blue_image']['tmp_name'], $dir.$new_name);

4 个答案:

答案 0 :(得分:5)

move_uploaded_file()不接受任一参数的网址。目标是文件系统上的绝对路径。

<?php
$dir = '/var/www/httpsdocs/'; // Adjust to your configuration
move_uploaded_file($_FILES['blue_image']['tmp_name'], $dir.$new_name);

正如@ apphacker建议的那样。您可以使用realpath(__FILE__)来确定文件的绝对路径。

答案 1 :(得分:2)

如果由于不知道绝对路径是什么而无法使用绝对路径,请使用PHP的realpath()来确定它是什么,然后使用它。

答案 2 :(得分:1)

httpdocs和httpsdocs目录是否都位于同一个父文件夹中?如果是这样,只需使用move_uploaded_file中第二个参数的相对路径将文件放在另一个根目录中。

例如:

$uploaddir = '../httpdocs/';
$uploadfile = $uploaddir . basename($_FILES['myfile']['name']);

此代码假定上传脚本位于httpsdocs根目录中,并且您要将文件保存到httpdocs目录中。

答案 3 :(得分:1)

请注意,由于您将上传的文件放在httpdocs中,因此可以上传php文件并执行任意代码。