我正在尝试使用函数move_uploaded_file()
上传PHP图像。
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]:无法打开流: 在......中没有该文件或目录 第63行/home/root_user/public_html/includes/functions.php
警告:move_uploaded_file()[function.move-uploaded-file]:无法移动 '/ tmp / phpJSKsYA'到'home / root_user / public_html / images / products / large / ty1bi.jpg' 在第63行的/home/root_user/public_html/includes/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/";
答案 0 :(得分:1)
让我想知道错误是'家/ ...没有领先/的事实。可能是某个安全设置剥离它,让PHP认为它应该将文件放入一个名为home / ...的子目录下你的CWD。
尝试
/home/.....
^---
代替