php上傳文件并顯示上傳進(jìn)度的方法

字號:


    這篇文章主要介紹了php上傳文件并顯示上傳進(jìn)度的方法,實(shí)例分析了php傳輸文件及顯示傳輸進(jìn)度的技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    本文實(shí)例講述了php上傳文件并顯示上傳進(jìn)度的方法。分享給大家供大家參考。具體如下:
    記得上傳文件的時候要大點(diǎn),不然還沒看出來就上傳完了,并且上傳的文件不要太大,上G的就算了,2G的我試了,PHP受不了,我測試的是300多M的,記得要調(diào)整小php.ini參數(shù)啊 “選文件=》提交=》獲取信息”要一氣呵成哦^ ^
    <?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程序設(shè)計(jì)有所幫助。