我的代码可以成功将Word文件上传到我的服务器上。问题是它将它保存在php文件所在位置的子文件夹中,因此如果有人放置目录和文件名,它是公开可用的。我想将文件保存在非公共文件夹中,但我无法弄清楚路径是什么。我在一个带有cpanel的共享服务器上。
$target_dir = "uploads/";
$file_name = basename( $_FILES["fileToUpload"]["name"]);
$target_file = $target_dir . $file_name;
$fileType = pathinfo($target_file, PATHINFO_EXTENSION);
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
{
echo "The file ". $file_name. " has been uploaded. <br>";
} else {
echo "Sorry, there was an error uploading your file.";
exit;
}
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)
这些文件目前正保存到&#34; / home / myusername / public_html / resume / uploads&#34;但是我想把它保存到&#34;&#34; / home / myusername / uploads&#34;。我只知道如何将文件保存到PHP程序所在文件夹中的文件夹中。我知道这可能非常简单,但我已经谷歌搜索了一段时间,但无法找到答案。
答案 0 :(得分:1)
要记住的是PHP从整个操作系统而不是Web根目录中获取。这意味着要么你需要知道文件夹的绝对地址,要么你仍然坚持上下导航包含文件夹。
鉴于您的问题,位置将是:
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], "../../uploads/$target_file");
根据您的示例,我假设脚本在resume
目录中运行。第一个..
向上移动public_html
,第二个向myusername
移动。从那里它下来到uploads
。
另一种方法是使用绝对地址:
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], "/home/myusername/uploads/$target_file");
在这两种情况下,您都需要确保PHP具有对相关文件夹的写入权限。
答案 1 :(得分:0)
只需改变一下:
$target_dir = "uploads/";
到此:
$target_dir = "../../uploads/";
您可以保存在您喜欢的任何目录中(前提是它存在并且进程有权写入它)。您所要做的就是指定目录。