php上传文件并显示上传进度的方法

前端技术 2023/09/05 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程序设计有所帮助。

本文地址:https://www.stayed.cn/item/12589

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。