如何捕获文件名错误的错误?

时间:2019-04-18 21:40:26

标签: php try-catch

我正在为学校制作instagram克隆文件,并且当前正在使用“更新个人资料”功能,每当我尝试更新个人资料图片时,它都像一个超级按钮,但是只要我不更新个人资料图片,但我只是更新描述或用户名时出现以下错误。

“ getimagesize():文件名不能为空”

当我不上传新的个人资料照片时,捕获此错误的最佳方法是什么?

我尝试了一种“尝试捕获”方法,但是它似乎不起作用。 (有可能我以错误的方式实现了

    if(isset($_FILES["file"])){
        if(getimagesize($_FILES["file"]["tmp_name"]) !== false){
            $target_dir = "uploads/";
            $extention = explode(".", $_FILES["file"]["name"]);

            $i = count($extention) - 1;
            $target_file = $target_dir . basename($_FILES["file"]["tmp_name"] . "." . $extention[$i]);

            if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
                // File has been moved to Uploads/[temp_name].[extention]
                $user->setImage($target_file);
                $a["image"] = $target_file;
            } else {
                // The file did not move to the destonation folder
            }
        }
    }

当我不上传新图片而是尝试更新用户名或描述时,我希望这不会将错误返回给我。

1 个答案:

答案 0 :(得分:0)

您可以检查错误索引是否为零(UPLOAD_ERR_OK),如果错误不为零导致没有文件上传,则UPLOAD_ERR_NO_FILE在那里

如果您只是想检查上传是否顺利,可以写:

if ($_FILES['file']['error'] == UPLOAD_ERR_OK) {
    // file is good (and not an error)
}

如果要检查文件是否未上传

if ($_FILES['file']['error'] == UPLOAD_ERR_NO_FILE) {
    // file is empty, no upload
}

检查PHP Reference,了解更多信息!