Rumah > pembangunan bahagian belakang > tutorial php > PHP 文件上传进度条的简单实现方法

PHP 文件上传进度条的简单实现方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-07-25 09:00:52
asal
1193 orang telah melayarinya
为大家提供二种php 文件上传进度条的代码,供大家学习参考。

一种是使用APC扩展模块:http://pecl.php.net/package/apc。 另外一种是使用PECL扩展模块 uploadprogress实现:http://pecl.php.net/package/uploadprogress。

1、APC实现方法: 安装APC,参照官方文档安装,可以使用PECL模块安装。 配置php.ini,设置参数 apc.rfc1867=1 ,使APC支持上传进度条功能, 示例:

<?php
/**
APC方法 上传进度条
*/
if ($_SERVER['REQUEST_METHOD'] == 'POST') { //上传请求
$status = apc_fetch('upload_' . $_POST['APC_UPLOAD_PROGRESS']);
$status['done'] = 1;
echo json_encode($status); //输出给用户端页面里的ajax调用,相关文档请自己寻找
exit;
} elseif (isset($_GET['progress_key'])) { //读取上传进度
$status = apc_fetch('upload_'.$_GET['progress_key']);
echo json_encode($status);
exit;
} else {
//其他代码,比如上传表单等
}
Salin selepas log masuk

2、uploadprogress 模块实现方法: 使用PECL模块安装方法安装该模块 php.ini里面设置 uploadprogress.file.filename_template = “/tmp/upd_%s.txt” 示例:

<?php
/**
 上传进度条
 bbs.it-home.org
*/

if($_SERVER['REQUEST_METHOD']=='POST') {
if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
$upload_dir = 'your_path/';
$ext = strrchr($_FILES['video']['name'], '.');
$sessid = $_POST['UPLOAD_IDENTIFIER'] ;
$tmpfile = $upload_dir . $sessid;
$sessfile = $upload_dir . $sessid .$ext;
if (move_uploaded_file($_FILES['upfile']['tmp_name'],$tmpfile)) {
//上传成功
} else {
//上传失败
} else {
//上传错误

} elseif (!empty($_GET['sessid'])) {
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-Type:text/html;charset=UTF-8");

$unique_id = $_GET['sessid'];
$uploadvalues = uploadprogress_get_info($unique_id);

if (is_array($uploadvalues)) {
echo json_encode($uploadvalues);
} else {
//读取进度失败,另外处理逻辑
}

} else {
//显示上传表单
}
?>
Salin selepas log masuk

有上传进度条的代码,看起来比较直观,用户体验好。



Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan