PHP上传文件类型与大小限制配置

php 的上传限制配置,挺容易被忽略的,但一旦踩坑就麻烦了。你上传个大图,结果报错,或者前端选个 .exe 被直接拦下,都是这些设置在起作用。

上传文件类型和大小的控制,主要靠几个地方。先是 php.ini 里的 upload_max_filesizepost_max_size,这俩要配套调大。前者是单个文件最大值,后者是整个求体最大值。

类型限制方面,推荐你在后端用 $_FILES 检查 typename 后缀,还得小心伪造。MIME 类型不能完全信,最好用 finfo_file 这种方式做一层文件头校验。

前端其实也能拦一部分,像 HTML 的 <input type="file" accept=".jpg,.png"> 还能配合 JS 判断,比如这篇文章里就讲了怎么用 JS 判断文件类型,挺实用的。

如果你担心前端绕过检查,也可以看看这篇,讲了怎么用 PHP 做前端校验补丁,适合对安全要求比较高的场景。

嗯,还有个建议就是:测试上传逻辑的时候别忘了用异常格式、边界大小、批量上传试试,不然上线之后容易翻车。

如果你还想了解其他语言怎么上传,可以看看这些:

php 文件大小:3.24KB