N.B*_*.B. 13
如果文件正确上传并且一切正常,您可以使用PHP superglobal提供的信息$_FILES.使用filesize()会增加很小的开销,因为操作系统需要检查文件的大小.这取决于你,但检查PHP源代码是如何做到的,这清楚地表明它正确地计算了HTTP多部分请求中的文件大小.基本上,如果您访问filesize()该文件,您将再次执行相同的工作.
您可以直接从超全局变量信任这一点的原因是多部分请求提供了数据所在的边界.根据定义,如果不遵循提取数据的协议,则不可能获得损坏的数据.换句话说,这意味着浏览器发送一个"分隔符",PHP只是找到它并开始检查该分隔符之间的数据文本.为此,它可以准确地分配所需的内存,并且可以立即缓存分配的数量 - 该数字是文件大小.如果在此过程中出现任何问题,您将收到错误.因此,如果文件正确上载,则有关该大小的信息是可信的.
PHP确实似乎在上传文件后重新计算文件的大小.虽然客户端确实发送了一个指定content-length文件的头,但是根据测试(使用PHP 5.5),这个头只是被忽略了,而是测量了长度.就个人而言,我总是filesize()习惯于获取文件大小,因为您可以更自信地使用哪种测量,但最终由您决定.无论哪种方式,$_FILES['file_name']['size']似乎都是一个安全的使用价值.
| 归档时间: |
|
| 查看次数: |
1284 次 |
| 最近记录: |