move_uploaded_file没有移动

时间:2013-07-15 10:23:48

标签: php file-transfer

我正在为后台上传图片,以便您可以更改前面的图像。 问题是我的上传脚本没有返回任何错误,但它也没有移动文件。 我希望我的脚本将新文件上传到该位置,并替换任何具有相同名称的文件,但我必须首先使用移动工作。

我哪里错了?

=============================================== =================================== 编辑: 我已经在路径中添加了斜杠。它仍然不会上传我的图像。 代码如下:

$target_path = "../../site/images/user_images/";
$image_name = $_POST['filename'].".".pathinfo($_FILES['file']['name'],PATHINFO_EXTENSION);

if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path.$image_name)) {
    echo "<meta http-equiv='refresh' content='0;URL=images.php?saved=true' />";
} else {
    echo "Error";
}

5 个答案:

答案 0 :(得分:3)

$target_path = "../../site/images/user_images/";
                                             ^ 

在这里,您忘记了/,它告诉您必须上传文件的目录。

所以$target_path.$image_name会变成这样

../../site/images/user_images/newfile.png

否则您的代码会生成此输出

../../site/images/user_imagesnewfile.png

答案 1 :(得分:1)

你错过了斜线。你需要:

$target_path = "../../site/images/user_images/";

答案 2 :(得分:0)

将斜杠添加到路径变量的末尾,然后重试。

$target_path = "../../site/images/user_images/";

答案 3 :(得分:0)

您是否在表单中添加了enctype?

<form name="form1" id="form1" method="post" action="" enctype="multipart/form-data">
</form>

答案 4 :(得分:0)

$target_path = $_SERVER['DOCUMENt_ROOT']."your/folder/relat";

路径应该是完整路径,然后为文件夹分配适当的权限