這篇文章主要介紹了php上傳文件并顯示上傳進度的方法,實例分析了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>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程序設計有所幫助。
新聞熱點
疑難解答