尝试在PHP中未上传文件的catch语句

2021/01/31 00:41 · php ·  · 0评论

我了解try-catch语句的作用,但是通过阅读php.net上的文档,我将无法在自己的代码中实现一个。我需要一个真实的例子来帮助我理解。

如果上传不成功,如何将该示例转换为try-catch语句?

$move = move_uploaded_file($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/uploads/'.$_FILES['file']['name']);

if (!$move) {
    die ('File didn\'t upload');
} else {            
    //opens the uploaded file for extraction
    echo 'Upload Complete!';
}

这可能不是一个很好的例子,但是可以提供任何帮助。

您可以这样做。

try {
    //throw exception if can't move the file
    if (!move_uploaded_file( ... )) {
        throw new Exception('Could not move file');
    }

    //do some more things with the file which may also throw an exception
    //...

    //ok if got here
    echo "Upload Complete!";
} catch (Exception $e) {
    die ('File did not upload: ' . $e->getMessage());
}

对于上面的示例,这没有什么意义,但是您应该了解一下。请注意,您可以从任何地方抛出异常(例如,在使用try {}进行调用的函数/方法内),并且异常会向上传播。

好吧,如果您想使用异常,则可以执行以下操作:

function handleUpload() {


    $move = move_uploaded_file($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/uploads/".$_FILES['file']['name']);

    if (!$move) {
       throw new Exception('File Didnt Upload');
    }

}

try {
   handleUpload();
   echo "File Uploaded Successfully";
} catch(Exception $ex) {
   die($ex->getMessage);
}

我知道这似乎有些膨胀-但您可以从调用堆栈中的任何位置调用该方法,并随时捕获异常。

try-catch语句用于处理异常。我不认为该函数move_uploaded_files可以引发异常,因此我认为您编写的代码是正确的。通话后,您将查看返回码。如果为假,则结束处理,否则报告成功。

根据PHPbug中类似的帖子,只有OO代码(面向对象的代码)会引发异常。那将意味着诸如move_uploaded_file之类的函数不会抛出自己的异常,但是其他一些代码会抛出异常。

本文地址:http://php.askforanswer.com/changshizaiphpzhongweishangchuanwenjiandecatchyuju.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!