本文实例讲述了php上传文件并显示上传进度的方法。分享给大家供大家参考。具体如下:
记得上传文件的时候要大点,不然还没看出来就上传完了,并且上传的文件不要太大,上G的就算了,2G的我试了,PHP受不了,我测试的是300多M的,记得要调整小php.ini参数啊 “选文件=》提交=》获取信息”要一气呵成哦^ ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
<?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>var finashed = true;</script>' ;
}
?>
<div id= "show_info_div" ></div>
<form action= "index.php" method= "POST" enctype= "multipart/form-data" >
<input type= "hidden" name= "<?php echo $name; ?>" value= "test" >
<input type= "file" name= "file" ><br>
<input type= "submit" value= "提交" >
<input type= "button" value= "获取信息" onclick= "getUploadInfo()" >
</form>
<script src= "jquery.js" ></script>
<script>
var sto = null;
var progress = null;
function getUploadInfo()
{
$.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程序设计有所帮助。