在move_uploaded_file中传递根路径

时间:2019-01-17 01:07:55

标签: php document-root

我有一个名为SADMIN的常量变量

define('SADMIN','http://localhost/synthesis_study_material/student_admin/');

并且我正在尝试在我的move_uploaded_file函数中使用SADMIN常量

move_uploaded_file($_FILES['name']['tmp_name'], SADMIN."include/uploaded/epub/".$_POST['name']);

我当前的文件位于

http://localhost/synthesis_study_material/synthesis_notes_admin/index.php

文件未在预期的文件夹中上载,并且move_uploaded_file没有给出任何警告或错误

1 个答案:

答案 0 :(得分:1)

move_uploaded_file的目标位置必须是文件路径,而不是URL。为了澄清这一点,您的网络服务器在文件系统上有一个指定的文件夹设置为网络根目录。这可能类似于“ / var / www”。这意味着当您转到“ http://localhost/”时,它将查找诸如“ /var/www/index.php”或“ /var/www/index.php”之类的文件。

目的地可能是绝对路径或相对路径,因此您可以提供“ synthesis_study_material / student_admin /”,并且可能与“ / var / www / synthesis_study_material / student_admin /”相同(取决于您的Web根目录和move_uploaded_file被称为)。请注意,您可以使用dirname(__FILE__)来获取当前php文件的路径。另外请注意,如果移动目录不存在,move_uploaded_file将不会为您创建目录。

我建议从一个简单的示例开始,例如move_uploaded_file($_FILES['name']['tmp_name'], 'test-upload.txt');,看看是否上传了任何内容,然后从那里进行修改。