为了账号安全,请及时绑定邮箱和手机立即绑定

如何查看用户是否用PHP上传了文件?

如何查看用户是否用PHP上传了文件?

PHP
吃鸡游戏 2019-12-27 12:38:16
我进行某种形式的验证,以确保用户上传的文件的类型正确。但是上载是可选的,因此如果他没有上载任何内容并提交了表单的其余部分,我想跳过验证。我如何检查他是否上传了东西?会$_FILES['myflie']['size'] <=0工作吗?
查看完整描述

3 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

您可以使用is_uploaded_file():


if(!file_exists($_FILES['myfile']['tmp_name']) || !is_uploaded_file($_FILES['myfile']['tmp_name'])) {

    echo 'No upload';

}

从文档:


如果以filename命名的文件是通过HTTP POST上传的,则返回TRUE。这有助于确保恶意用户没有试图诱使该脚本在不应该对其运行的文件上工作,例如/ etc / passwd。


如果上传的文件所做的任何事情都可能向用户甚至同一系统上的其他用户透露其内容,则这种检查尤为重要。


编辑:我在FileUpload类中使用它,以防万一:


public function fileUploaded()

{

    if(empty($_FILES)) {

        return false;       

    } 

    $this->file = $_FILES[$this->formField];

    if(!file_exists($this->file['tmp_name']) || !is_uploaded_file($this->file['tmp_name'])){

        $this->errors['FileNotExists'] = true;

        return false;

    }   

    return true;

}


查看完整回答
反对 回复 2019-12-27
?
慕村9548890

TA贡献1884条经验 获得超4个赞

这段代码对我有用。我正在使用多个文件上传,因此我需要检查是否有任何上传。


HTML部分:


<input name="files[]" type="file" multiple="multiple" />

PHP部分:


if(isset($_FILES['files']) ){  



foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){


      if(!empty($_FILES['files']['tmp_name'][$key])){


    //  things you want to do

    }

}


查看完整回答
反对 回复 2019-12-27
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

我不得不重写他的示例以适合我的目的。他的示例假定提交字段的名称是已知的并且可以用硬编码输入。我进一步走了一步,制作了一个函数,该函数将告诉我是否有任何文件被上传,而不必知道上传字段的名称。


/**

 * Tests all upload fields to determine whether any files were submitted.

 * 

 * @return boolean

 */

function files_uploaded() {


    // bail if there were no upload forms

   if(empty($_FILES))

        return false;


    // check for uploaded files

    $files = $_FILES['files']['tmp_name'];

    foreach( $files as $field_title => $temp_name ){

        if( !empty($temp_name) && is_uploaded_file( $temp_name )){

            // found one!

            return true;

        }

    }   

    // return false if no files were found

   return false;

}


查看完整回答
反对 回复 2019-12-27
  • 3 回答
  • 0 关注
  • 442 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信