PHP $_FILES的应用
关于文件上传这块,如果处理不好的话,很容易成为黑客入侵的开口,例如黑客在你这个上传接口里放一段木马的文件,那只能祝你好运了。
所以,我们上传文件的时候都会先判断,
但是一般的操作是先上传,再判断,如果你是这样的话,那只能祝你好运了。
所有,我们要在文件上传之前就要进行判断!!!
我们可以利用一下$_FILES这个函数。
$_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。
这个只是临时文件,在代码运行结束的时候他就会自动关掉。
所有你可以在文件上传前,先用着临时文件进行判断,如:
//判断图片长度和宽度是否1:1关系 public static function ImgProportion() { $image = new \Think\Image(); $image->open($_FILES['file']['tmp_name']); $size = $image->size(); // 返回图片的尺寸数组 0 图片宽度 1 图片高度 if ($size[0]/$size[1] == 1) { return true; } return false; }
或者转成base64位都可以,你喜欢就好。