PHP 文件上传

原创2018-11-02 10:14:50124
摘要:主意【在使用check()方法的时候必须提前开启PHP的fileinfo 扩展,不然会爆如下错误】Call to undefined function think\finfo_open()检查是否post提交Request::isPost()获取上传文件的全部信息$files = Request::file('image');验证上传文件是否符合规则$rule&

主意【在使用check()方法的时候必须提前开启PHP的fileinfo 扩展,不然会爆如下错误】

Call to undefined function think\finfo_open()

检查是否post提交

Request::isPost()

获取上传文件的全部信息

$files = Request::file('image');

验证上传文件是否符合规则

$rule = ['size'=>2097152,'ext'=>'jpg,jpeg,png,gif','type'=>'image/jpeg,image/png,image/gif'];
$file->check($rule)

图片文件上传验证方法

    public function index()
    {
    	if(Request::isPost())
    	{
    		$files = Request::file('image');
    		//halt($files);
    		if (is_null($files))
    		{
				$this->error('没有选择任何文件');
			}

			$rule = ['size'=>2097152,'ext'=>'jpg,jpeg,png,gif','type'=>'image/jpeg,image/png,image/gif'];

    		foreach($files as $file)
    		{
    			//dump($file);
    			//echo '<hr>';
    			//phpfileinfo不加载此扩展会报错,已踩坑!
				if($file->check($rule))
				{
					$fileInfo = $file->move('./uploads');
					echo $res = '<h3 style="color:green;">上传成功</h3>文件名是:'.$fileInfo->getFileName();		
				}else
				{
					return $res = '<h3 style="color:red;">上传失败</h3>'.$file->getError();	
				}

			}
			return; 
    	}   
        return view();
        //return \think\facade\App::version();
    }

多文件上传两个图片一个TXT文件输出结果

上传成功
文件名是:6cf10b34200822d960b2648ea7b43468.jpg上传成功
文件名是:b0f69af7398ef13ab9c278b0b4a0a632.jpg上传失败
上传文件MIME类型不允许!


批改老师:韦小宝批改时间:2018-11-02 10:19:09
老师总结:框架中的文件上传要比原生的上传简单太多了!写的很不错!很完整!继续努力学习吧!

发布手记

热门词条