PHP文件上传无法在AWS服务器上运行 - mkdir返回false

时间:2016-09-29 03:05:26

标签: php ajax file amazon-web-services file-upload

我有一些代码可以在AWS服务器上传文件。它工作正常,直到今天,我决定从我的AWS服务器中删除所有代码,并上传最新的代码副本,从那时起它就停止了工作。有人可以发现错误。

我试着调试一下,我发现mkdir(...)函数返回false。我不知道为什么它会返回假。我拥有“uploads”文件夹的所有权限 - drwxrwxr-x。我也在我的表单上使用enctype =“multipart / form-data”。

有人可以指出我正确的方向吗?我会做其余的事。

感谢。请帮忙!

$uniqueKey = md5(microtime(true)).uniqid();
$ret = array();

function makedir($dir){
    if (!is_dir($dir) && strlen($dir)>0){
        mkdir($dir, 0777, true);
        chmod($dir, 0777);
    }
}

$output_dir = "../uploads/".$uniqueKey."/";
makedir($output_dir);

if(isset($_FILES["myfile"])){
    $error =$_FILES["myfile"]["error"];
    $ret['unique'] = $uniqueKey;
    $ret['error'] = $error;

    if(!is_array($_FILES["myfile"]["name"])){
        $fileName = $_FILES["myfile"]["name"];
        move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.$fileName);
        $ret[]= $fileName;
    }else{
        $fileCount = count($_FILES["myfile"]["name"]);
        for($i=0; $i < $fileCount; $i++){
            $fileName = $_FILES["myfile"]["name"][$i];
            move_uploaded_file($_FILES["myfile"]["tmp_name"][$i],$output_dir.$fileName);
            $ret[]= $fileName;
        }
    }
}
echo json_encode($ret);

1 个答案:

答案 0 :(得分:0)

这是权限。我将我的文件夹的权限从drwxrwxr-x更改为drwxrwxrwx,并且它有效。