我正在尝试使用 PHP 使用函数上传图像move_uploaded_file()
。
PHP
// Get image variables
$file = $_FILES['image']['tmp_name'];
$path = "images/products/large/";
$image_hash = "ty1bi"; // This would be generated
//I have also tried this: $path = "home/the_user/public_html/images/products/large/";
//$_SERVER['DOCUMENT_ROOT'] is equal to home/root_user/public_html/
// Upload image
if(!move_uploaded_file($file, $path . $image_hash . ".jpg")) {
header("location:admin/add.php?e=1");
exit;
}
目前,我得到:
警告:move_uploaded_file(home/root_user/public_html/images/products/large/ty1bi.jpg) [function.move-uploaded-file]:无法打开流:/home/root_user/public_html/includes/ 中没有这样的文件或目录第 63 行的functions.php
警告:move_uploaded_file() [function.move-uploaded-file]:无法将 '/tmp/phpJSKsYA' 移动到 /home/root_user/public_html/ 中的 'home/root_user/public_html/images/products/large/ty1bi.jpg'第 63 行包含/functions.php
托管帐户是在 WHM 中设置的,我正在通过/~the_user/
目录访问该站点。因此,站点名称可以是主/根主机域名或服务器 IP 地址,后跟/~the_user
.
因为错误显示的/root_user
是 WHM 主机的用户名,所以我认为它无法访问/~the_user
. 我已经尝试更改文档根目录,$path
因此它从开始home/
并包含/the_user
,但我也没有运气。
有没有办法做到这一点,还是我必须在域名上使用/测试它?
更新
因为文档根目录位于根用户名下,所以发生的问题是绝对路径的正确构建。通过构建路径,我的方向是正确的,但这是绝对的,因为路径字符串开头缺少斜杠。
这行代码帮助解决了这个问题:
$path = "/home/the_user/public_html/images/products/large/";