PHP上传文件类型与大小限制配置
php 的上传限制配置,挺容易被忽略的,但一旦踩坑就麻烦了。你上传个大图,结果报错,或者前端选个 .exe 被直接拦下,都是这些设置在起作用。
上传文件类型和大小的控制,主要靠几个地方。先是 php.ini
里的 upload_max_filesize
和 post_max_size
,这俩要配套调大。前者是单个文件最大值,后者是整个求体最大值。
类型限制方面,推荐你在后端用 $_FILES
检查 type
和 name
后缀,还得小心伪造。MIME 类型不能完全信,最好用 finfo_file
这种方式做一层文件头校验。
前端其实也能拦一部分,像 HTML 的 <input type="file" accept=".jpg,.png">
还能配合 JS 判断,比如这篇文章里就讲了怎么用 JS 判断文件类型,挺实用的。
如果你担心前端绕过检查,也可以看看这篇,讲了怎么用 PHP 做前端校验补丁,适合对安全要求比较高的场景。
嗯,还有个建议就是:测试上传逻辑的时候别忘了用异常格式、边界大小、批量上传试试,不然上线之后容易翻车。
如果你还想了解其他语言怎么上传,可以看看这些:
3.24KB
文件大小:
评论区