本文目录一览:
- 1、php 文件上传,如何实现进度条功能?
- 2、php上传进度条。之前做了上传了,正常上传。现在要做进度条。怎么做?不要做假的,要真实的
- 3、大神,ThinkPHP 上传文件进度条怎么实现的
- 4、php 怎么做进度条
php 文件上传,如何实现进度条功能?
不用这么麻烦,jquery有很多插件就可以实现上传文件进度的样式,可以使用下
ps:既然你这么个性,我就给你说说实现的原理,具体细节你自己去弄吧.
普通的页面访问全是同步的,就是 请求--反馈,而进度条需要的实时的数据,所以普通页面是实现不了这个功能的,得需要借助异步ajax周期获取进度数据,这个数据的来源当然就是服务器端发送的了,这样就遇到了一个严重的问题,php获取不了文件传送过程中的状态.幸好,php的创始人写了一个APC扩展(另外一个扩展是uploadprogress),利用扩展的语法,加上ajax,使用js操作页面的dom对象,就实现了进度条.
你明白了原理,你也很难做出来,哎.
php上传进度条。之前做了上传了,正常上传。现在要做进度条。怎么做?不要做假的,要真实的
更新你的php到5.4以上
你会用到这个的:Session Upload Progress ,php自带的会话上传进度
php会话进度********************
?php
session_start();
$key = ini_get("session.upload_progress.prefix") . ini_get("session.upload-progress.name");
var_dump($_SESSION[$key]);
?
表单********************
form action="upload.php" method="POST" enctype="multipart/form-data"
input type="hidden" name="?php echo ini_get("session.upload_progress.name"); ?" value="123" /
input type="file" name="file1" /
input type="file" name="file2" /
input type="submit" /
/form
应用示例********************
?php
$_SESSION["upload_progress_123"] = array(
"start_time" = 1234567890, // The request time
"content_length" = 57343257, // POST content length
"bytes_processed" = 453489, // Amount of bytes received and processed
"done" = false, // true when the POST handler has finished, successfully or not
"files" = array(
0 = array(
"field_name" = "file1", // Name of the input/ field
// The following 3 elements equals those in $_FILES
"name" = "foo.avi",
"tmp_name" = "/tmp/phpxxxxxx",
"error" = 0,
"done" = true, // True when the POST handler has finished handling this file
"start_time" = 1234567890, // When this file has started to be processed
"bytes_processed" = 57343250, // Amount of bytes received and processed for this file
),
// An other file, not finished uploading, in the same request
1 = array(
"field_name" = "file2",
"name" = "bar.avi",
"tmp_name" = NULL,
"error" = 0,
"done" = false,
"start_time" = 1234567899,
"bytes_processed" = 54554,
),
)
);
大神,ThinkPHP 上传文件进度条怎么实现的
Web Uploader
这个插件是百度出的,有进度条,兼容ie7及以上。
原理就是ajax上传,会返回1-100的数值,根据这个值来操作进度条。如果还有不明白的话,你可以在后盾人看看视频找找答案,有空多看看时间长了,慢慢就明白了,希望能帮到你,给个采纳吧谢谢
php 怎么做进度条
一般来说,很少会有人直接用PHP输出
进度条
,但是也是可以实现的(需要JS)。
原理和过程:
利用flush函数会提前输出缓冲区内容;
内容是主要的进度条;
循环》
输出改变内容的JS;
暂停一秒,继续循环;
所有的输出都要先放到缓冲区的,直接echo的输出是等到页面结束才输出。
用户的函数:
sleep()
ob_start()
ob_flush()
flush()
或
ob_implicit_flush();
具体的代码就不写了,要自己动手哦,百度下每个函数的意思,加深理解和记忆。