Php 正在检查已上载的文件,其中文件\已存在
我有一个表单,用于将数据上传到数据库。该表单有许多输入字段,范围包括表单文本、数字、文本区域和文件(图像) 提交表单时,我会检查是否有上传的图像,如果有,检查上传的图像是否通过了一系列检查(低于最大文件大小、正确的扩展名等),并将整个过程设置为try/catch块,以便在任何检查失败时抛出异常 我的支票如下:Php 正在检查已上载的文件,其中文件\已存在,php,file-upload,Php,File Upload,我有一个表单,用于将数据上传到数据库。该表单有许多输入字段,范围包括表单文本、数字、文本区域和文件(图像) 提交表单时,我会检查是否有上传的图像,如果有,检查上传的图像是否通过了一系列检查(低于最大文件大小、正确的扩展名等),并将整个过程设置为try/catch块,以便在任何检查失败时抛出异常 我的支票如下: $upload=$_FILES['Upload']['tmp_name']; if(isset($upload)) { if(!empty($upload) &&
$upload=$_FILES['Upload']['tmp_name'];
if(isset($upload))
{
if(!empty($upload) && is_uploaded_file($upload))
{
//Checks file size,extension and uploads the file
}
else
{
//throw new Exception
}
}
else
{
//throw new Exception
}
但是,当使用上述方法时,即使没有上传任何文件,isset也会返回true。在谷歌搜索并查看堆栈溢出时,特别是在声明isset将返回true,因为$_文件是超全局文件的情况下,我四处寻找解决方案,最终确定使用文件_exists()替换isset()在我的代码中
我使用file_exists()的理由是,上载(提交)的文件将在上载过程中存储在临时目录中,如果我检查此临时目录,我将能够确定是否确实上载了文件
在用文件_exists替换isset()之后,我的代码现在运行良好,但我想知道这是否是正确的方法,或者是否有其他更好的替代方法
我期待任何意见和/或建议。我将使用$\u文件提供的:
if($_FILES['Upload']['error'] == UPLOAD_ERR_OK) {
//seems to have worked
}
您甚至可以检查其他错误代码,例如文件是否太大等
$upload=$_FILES['Upload']['tmp_name'];
if($upload)
{}
这将给出文件临时名称或null