介绍
这篇文章给大家介绍怎么在PHP中利用会话。upload_progress实现一个文件上传进度显示功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>开启session.upload_progress 强>
修改php . ini文件,开启会话。upload_progress的支持。
session.upload_progress.enabled =, session.upload_progress.cleanup =, 时间=session.upload_progress.prefix “upload_progress_" 时间=session.upload_progress.name “PHP_SESSION_UPLOAD_PROGRESS" 时间=session.upload_progress.freq “1%”; session.upload_progress.min_freq =,“1“
对于PHP语言,这应该是最好的解决方案了,因为这种方式依赖于PHP内部的会议机制,开始上传文件创建相关会话以便读取,文件上传完成就会销毁session.html5的文件上传的api也可以显示上传进度,但是对IE的10以下的版本没法使用,所以兼容性不太好。
接下来,我们通过一个例子,实现以下相关效果。
<强>修改PHP上传文件限制强>
. ini默认的上传文件大小上限为2 M,然而我们既然需要显示文件上传进度,肯定都是要能够上传比较大的文件。尤其我们在本地服务器上测试的时候,因为服务器保存的路径是在本地磁盘上,所以文件上传就相当于在磁盘上复制,速度很快,我们想要比较直观的看到上传进度的显示,就需要上传一个比较大的文件,我在测试的时候,上传的是一个400多米的压缩包。
可以通过下面的PHP。ini的配置,调整上传文件大小的限制(以上限500为例)
upload_max_filesize =, 500,,//上传文件的最大值,还可以调更大 post_max_size =, 500,,,,,//发布方式传递过来数据最大值,还可以调更大 时间=max_execution_time 1800;,//页面最大执行时间,已经设置为最大值 时间=max_input_time 1800;,//解析传入数据最大执行时间,已经设置为最大值 时间=memory_limit 128;,,//每个页面消耗的最大内存,已经设置为最大值
<强>实例程序强>
首先放上最简单的部分,上传文件转存程序
上传。php
& lt; php ? 如果收取(带有_file美元[& # 39;演示# 39;])){ tmp=美元才能爆炸(“干净,带有_file美元[& # 39;演示# 39;][& # 39;名字# 39;]); suffix_name 美元;=,才能结束(tmp);=美元才能name 拖延时间()!”干净。suffix_name美元; 时间=美元才能path __DIR__ !”\ \“。美元名称; 函数的才能(带有_file美元[& # 39;演示# 39;][& # 39;tmp_name& # 39;],美元路径); echo 才能“upload  success"; 其他}{ echo 才能“error"; }
然后是前台获取上传文件百分数的接口文件
进步。php
& lt; php ? session_start (); $ key =, ini_get (“session.upload_progress.prefix"),只$ _GET [“key"]; if (!空($ _SESSION [$ key])), { 时间=美元才能current $ _SESSION [$ key] [“bytes_processed"]; 时间=美元才能total $ _SESSION [$ key] [“content_length"]; echo 才能;current 美元;& lt;, total 美元;?,装天花板(current 美元/,total 美元;*,100),:,100; 其他}{ echo 才能;100; }
最后是前台的上传文件界面
索引。html
& lt; ! DOCTYPE html> & lt; html  lang=癳n"祝辞 & lt; head> & lt;才能meta charset=癠TF-8"比; & lt;才能title>上传文件示例程序& lt;/title> & lt;/head> & lt; body> & lt; div id=癴ileUpload"祝辞 & lt;才能form id=皍pload-form", action=皍pload.php",方法=皃ost", enctype=岸嗖糠?form-data",目标=癶idden_iframe"比; ,,,& lt; p> ,,,,,& lt; input 类型=癶idden", name=癙HP_SESSION_UPLOAD_PROGRESS",价值=https://www.yisu.com/zixun/" file1 "/> 形式
上传进度:
身体>