尽管路径和现有文件正确,move_uploaded_file仍无法正常工作

时间:2018-06-14 16:01:59

标签: php

我真的在解决与php的move_uploaded_file函数有关的问题。

路径应该是正确的,但请注意自己:

$imgDir     = "../img/".$CATEGORY;
$fileName   = $_FILES['image']['name'];
$maxsize    = 800;
$compQuality= 75;
if(!is_dir($imgDir)) {
    mkdir($imgDir.'/tn', 0777, true);
    chmod($imgDir, 0777);       
    chmod($imgDir, 0777);
}

$imgDir     = $imgDir."/";
$imgTnDir   = $imgDir."tn/";

我也通过回显一切来测试它,它似乎工作,但是当涉及到move_uploaded_file时,它仍然不起作用,即使我测试文件是否真的存在:

if(file_exists($imgDir.$fileName)) {
    $status = "The file ".$fileName." already exists, please choose a different title.";
} 

if(!move_uploaded_file($_FILES['image']['tmp_name'], $imgDir.$fileName)) {
    $status = "File upload failed, sorry.";
}   

if(!empty($status)) { 
    echo $status;
    exit();
}   

我希望有人可以帮助我。如果你想我可以打印你需要的任何东西或给你更多的代码片段。 var $ _FILES [' image'] [' tmp_name']不仅存在,而且顺便提一下。

此外,我已经检查了php.ini,并允许上传,并且大小肯定设置得足够高。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

确保您在$ imgDir中拥有正确的路径。你可以尝试:

$imgDir = __DIR__ . "/../img/".$CATEGORY;

你也可以使用绝对路径,如下所示:

$('#searchbutton').on("click", function(){
    $.ajax({
        type: "POST",
        url: "/listing-search",
        data: $('#searchform').serialize(),
        success: function (response) {
            jQuery('#reload').html();
        }
    });
});

$("#searchbox").keydown(function(e){
    if(e.which === 13){
        $("#searchbutton").click();
    }
});