上传照片PHP/Ajax

Val*_*oso -1 php jquery laravel

我正在尝试使用Ajax和PHP上传照片,但是返回错误,我不知道为什么:

消息:"move_uploaded_file(/site/uploads/users/user.png):无法打开流:没有这样的文件或目录"

返回(文件):

C:\xampp\tmp\php2BAB.tmp
Run Code Online (Sandbox Code Playgroud)

JQUERY:

$("#user-upload-photo").submit(function (){

        $("#user-upload-photo").ajaxSubmit({
            url: '/ajax/settings/upload',
            type: 'post',
            beforeSubmit: function(){
                $("#photo-loading").show();
                $("#photo-figure").hide();
            },
            success: function () {
                $("#photo-loading").hide();
                $("#photo-figure").show();
            }
        });

    return false;
});
Run Code Online (Sandbox Code Playgroud)

这是返回错误的代码:

控制器:

public function upload(){
    if(!empty($_FILES)):
        if(is_uploaded_file($_FILES['user-photo-input']['tmp_name'])):
            $srcPath = $_FILES['user-photo-input']['tmp_name'];
            $trgPath = '/site/uploads/users/' . $_FILES['user-photo-input']['name'];

            if(move_uploaded_file($srcPath, $trgPath)):
                return response()->json(['succcess' => '1', 'photo' => $trgPath]);
            endif;

        endif;
    endif;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

首先检查您尝试上传的目录和所有子根是否存在

if (!file_exists('path/to/directory')) {
    mkdir('path/to/directory', 0777, true);
}
Run Code Online (Sandbox Code Playgroud)

如果没有,创建它