我想我已经设法通过AJAX将图像上传到PHP文件,我现在正尝试将其移动到已知位置,这是我的代码:
$allowedExtensions = array('JPEG', 'JPG', 'PNG', 'GIF');
$temp = explode(".", $_FILES["image"]["name"]);
$extension = end($temp);
if (in_array($extension, $allowedExtensions)) {
if (file_exists("../pictures/" . $_FILES["image"]["name"])) {
echo $_FILES["image"]["name"] . " already exists";
} else {
move_uploaded_file($_FILES["image"]["name"], "../pictures/" . $_FILES["image"]["name"]);
echo "Moved to ". "../pictures/" . $_FILES["image"]["name"];
}
}
运行时我得到的回声是它已被移动到“../pictures/capture.JPG”,但当我查看该文件夹时,它不在那里。
任何想法为什么?我也不知道["name"]
做了什么,所以对此的解释也将非常感谢!
答案 0 :(得分:2)
您的代码似乎有一个小错误。当PHP上传图像时,它会将其保存在临时目录中。所以为了移动,你应该这样做:
move_uploaded_file($_FILES["image"]["tmp_name"], "../pictures/" . $_FILES["image"]["name"]);
请注意上面的tmp_name
。如果你的其余代码没问题,这一定必须有效!