PHP文件上传进度条的具体实现方式
我们在编写文件上传代码的时候,还需要考虑一个重要的实现功能,那就是文件上传所需要的进度条。目前我知道我这里举两个分别实现的例子供参考,更灵活的应用根据自己需要来修改。
APC的PHP文件上传进度条实现方法:
安装APC,参照官方文档安装,可以使用PECL模块安装方法快速简捷,这里不说明
配置php.ini,设置参数 apc.rfc1867=1 ,使APC支持上传进度条功能,在APC源码说明文档里面有说明
代码范例:
<ol class="dp-xml"> <li class="alt"><span><span>if ($_SERVER['REQUEST_METHOD'] == 'POST') { //上传请求 </span></span></li> <li class=""> <span> $</span><span class="attribute"><font color="#ff0000">status</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">apc_fetch</font></span><span>('upload_' . $_POST['APC_UPLOAD_PROGRESS']); </span> </li> <li class="alt"><span> $status['done'] = 1; </span></li> <li class=""><span> echo json_encode($status); //输出给用户端页面里的ajax调用,相关文档请自己寻找 </span></li> <li class="alt"><span> exit; </span></li> <li class=""><span>} elseif (isset($_GET['progress_key'])) { //读取上传进度 </span></li> <li class="alt"> <span> $</span><span class="attribute"><font color="#ff0000">status</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">apc_fetch</font></span><span>('upload_'.$_GET['progress_key']); </span> </li> <li class=""><span> echo json_encode($status); </span></li> <li class="alt"><span> exit; </span></li> <li class=""><span>} else { </span></li> <li class="alt"><span> //其他代码,比如上传表单等 </span></li> <li class=""><span>} </span></li> </ol>
uploadprogress 模块实现方法:
使用PECL模块安装方法安装该模块的PHP文件上传进度条实现方法
php.ini里面设置 uploadprogress.file.filename_template = “/tmp/upd_%s.txt”
代码范例:
<ol class="dp-xml"> <li class="alt"><span><span>if($_SERVER['REQUEST_METHOD']=='POST') { </span></span></li> <li class=""><span> if (is_uploaded_file($_FILES['upfile']['tmp_name'])) { </span></li> <li class="alt"> <span> $</span><span class="attribute"><font color="#ff0000">upload_dir</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">'your_path/'</font></span><span>; </span> </li> <li class=""> <span> $</span><span class="attribute"><font color="#ff0000">ext</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">strrchr</font></span><span>($_FILES['video']['name'], '.'); </span> </li> <li class="alt"> <span> $</span><span class="attribute"><font color="#ff0000">sessid</font></span><span> = $_POST['UPLOAD_IDENTIFIER'] ; </span> </li> <li class=""> <span> $</span><span class="attribute"><font color="#ff0000">tmpfile</font></span><span> = $upload_dir . $sessid; </span> </li> <li class="alt"> <span> $</span><span class="attribute"><font color="#ff0000">sessfile</font></span><span> = $upload_dir . $sessid .$ext; </span> </li> <li class=""><span> if (move_uploaded_file($_FILES['upfile']['tmp_name'],$tmpfile)) { </span></li> <li class="alt"><span> //上传成功 </span></li> <li class=""><span> } else { </span></li> <li class="alt"><span> //上传失败 </span></li> <li class=""><span> } else { </span></li> <li class="alt"><span> //上传错误 </span></li> <li class=""><span> </span></li> <li class="alt"><span>} elseif (!empty($_GET['sessid'])) { </span></li> <li class=""><span> header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); </span></li> <li class="alt"><span> header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); </span></li> <li class=""><span> header("Cache-Control: no-store, no-cache, must-revalidate"); </span></li> <li class="alt"> <span> header("Cache-Control: </span><span class="attribute"><font color="#ff0000">post-check</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">0</font></span><span>, </span><span class="attribute"><font color="#ff0000">pre-check</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">0</font></span><span>", false); </span> </li> <li class=""><span> header("Pragma: no-cache"); </span></li> <li class="alt"> <span> header("Content-Type:text/html;</span><span class="attribute"><font color="#ff0000">charset</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">UTF</font></span><span>-8"); </span> </li> <li class=""><span> </span></li> <li class="alt"> <span> $</span><span class="attribute"><font color="#ff0000">unique_id</font></span><span> = $_GET['sessid']; </span> </li> <li class=""> <span> $</span><span class="attribute"><font color="#ff0000">uploadvalues</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">uploadprogress_get_info</font></span><span>($unique_id); </span> </li> <li class="alt"><span> </span></li> <li class=""><span> if (is_array($uploadvalues)) { </span></li> <li class="alt"><span> echo json_encode($uploadvalues); </span></li> <li class=""><span> } else { </span></li> <li class="alt"><span> //读取进度失败,另外处理逻辑 </span></li> <li class=""><span> } </span></li> <li class="alt"><span> </span></li> <li class=""><span>} else { </span></li> <li class="alt"><span> //显示上传表单 </span></li> <li class=""><span>} </span></li> </ol>
以上就是我们为大家介绍的两种PHP文件上传进度条的具体方法。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

In this chapter, we are going to learn the following topics related to routing ?

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Validator can be created by adding the following two lines in the controller.

Working with database in CakePHP is very easy. We will understand the CRUD (Create, Read, Update, Delete) operations in this chapter.
