今天在学习 ThinkPHP5.1 中 文件上传 的时候出现了一个问题:图片的格式,明明写了支持jpg,png,gif,但是却只能上传 jpg 格式的图片,其他的都无法上传,我的其中一行有问题代码如下:
// 上传文件
$info = $file->validate(['size'=>3145728, 'ext'=>'jpg, png, gif'])->move("./uploads");
我仔细看了好多遍,都无法确定错误所在,只是提示 “上传文件的后缀不允许”,但是请求返回的状态码是200,后来突然想到,这样写:
// 上传文件
$info = $file->validate(["size"=>3145728, 'ext'=>'jpg,png,gif'])->move("./uploads");
结果就成功了,马上 jpg,png,gif 这三种图片的格式都支持。
错误写法: 'ext'=>'jpg, png, gif'
;
正确写法: 'ext'=>'jpg,png,gif'
;
如果在 jpg, png, gif 中间都加空格,就只支持 jpg格式的图片;如果在png和gif中间加空格,支持jpg和png格式,因此,jpg, png, gif 中间不加空格。