php上传文件并显示上传进度的方法
本文实例讲述了php上传文件并显示上传进度的方法。分享给大家供大家参考。具体如下:
记得上传文件的时候要大点,不然还没看出来就上传完了,并且上传的文件不要太大,上G的就算了,2G的我试了,PHP受不了,我测试的是300多M的,记得要调整小php.ini参数啊“选文件=》提交=》获取信息”要一气呵成哦^^
<?php
$prefix=ini_get('session.upload_progress.prefix');
$name=ini_get('session.upload_progress.name');
$key=$prefix.$name;
session_start();
if(isset($_POST['get_info'])){
$logo=$prefix.$_POST['logo'];
exit(json_encode($_SESSION[$logo]));
}elseif($_POST){
echo'<script>varfinashed=true;</script>';
}
?>
<divid="show_info_div"></div>
<formaction="index.php"method="POST"enctype="multipart/form-data">
<inputtype="hidden"name="<?phpecho$name;?>"value="test">
<inputtype="file"name="file"><br>
<inputtype="submit"value="提交">
<inputtype="button"value="获取信息"onclick="getUploadInfo()">
</form>
<scriptsrc="jquery.js"></script>
<script>
varsto=null;
varprogress=null;
functiongetUploadInfo()
{
$.post("index.php",{"get_info":1,"logo":"test"},function(data)
{
data=eval("("+data+")");
progress=parseInt(parseInt(data.bytes_processed)*10000/parseInt(data.content_length))/100+"%";
document.getElementById("show_info_div").innerHTML=progress;
sto=setTimeout("getUploadInfo()",1000);
});
}
if(typeof(finashed)!=="undefined")
{
document.getElementById("show_info_div").innerHTML="100.00%(上传成功!)";
}
</script>
希望本文所述对大家的php程序设计有所帮助。