8.2 php学习笔记 文件上传

文件上传需要注意php.ini文件下列参数更改 

配置项 功能说明
file_uploads on为 开启文件上传功能,off为关闭 默认开启
post_max_size 系统允许的POST传参的最大值  默认8M
upload_max_filesize 系统允许的上传文件的最大值
memory_limit 内存使用限制

upload_tmp_dir   ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
 

建议尺寸: file_size(文件大小) < upload_max_filesize < post_max_size < memory_limit

另外,需要注意的是脚本执行时间。

max_execution_time,这什参数的单位为秒。
这个参数是设定脚本的最大执行时间。
也可以根据需求做适当的改变。通常不需要来修改,系统默认值即可。超大文件上传的时候,可能会涉及到这一项参数的修改。

上传时间太长了,会超时。如果你将此项参数设为0,则是不限制超时时间,不建议使。

  单文件上传:<input type="file" name="file"> 

   多文件上传:<input type="file" name="file[]"> 
   

php文件上传进度处理

当文件过大,或者用户网络状态一般,通常上传过程需要一段时间,如果这时候让用户白屏等待的话,相信大部分用户都会直接关掉应用,所以一个监控上传进度,并实时向用户报告的需求就被产品汪摆在了桌面上。一个高逼格的上传进度提示,会让你的应用瞬间变成被仰望的存在。

PHP在5.4之前,总是需要安装额外的扩展才能监控到文件上传进度。而从5.4开始,引入session.upload_progress的新特性,我们只需要在php.ini中开启配置,即可通过session监控文件上传进度。在php.ini中。

注意:本章学习需要有session基础和javascript和ajax基础。

我们需要配置,注意查看和修改php.ini文件:

配置项 说明
session.upload_progress.enabled 是否启用上传进度报告(默认开启) 1为开启,0为关闭
session.upload_progress.cleanup 是否在上传完成后及时删除进度数据(默认开启, 推荐开启)
session.upload_progress.prefix[=upload_progress_] 进度数据将存储在_SESSION[session.upload_progress.prefix . _POST[session.upload_progress.name]]
session.upload_progress.name[=PHP_SESSION_UPLOAD_PROGRESS] 如果_POST[session.upload_progress.name]没有被设置, 则不会报告进度.
session.upload_progress.freq[=1%] 更新进度的频率(已经处理的字节数), 也支持百分比表示’%’.
session.upload_progress.min_freq[=1.0] 更新进度的时间间隔(秒级)

猜你喜欢

转载自blog.csdn.net/wocaa2046/article/details/81364185
8.2