仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1094|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页设计PHP共同apc完成上传进度条

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
#
发表于 2015-2-3 23:29:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对于PHP的语法结构,刚开始真的很不习惯,真搞不懂为什么每个变量之前都要加个“$”符号,每个语句写完之后都必须加上“分号”来表示此句已经结束,还有,PHP对字母的大小写是敏感的,写的时候一定要注意大小写的区别。     
  PHP共同apc完成上传进度条, 一向觉得PHP是没法做到进度条一个静态的功效,本来仍是本人的常识面不敷,看到了apc扩大相干的一些文章,使用apc扩大到达了静态完成后果。依据找到相干的文章本人并在此基本上做了一些小修正。本人的办事器用的window,在这里次要针对的是window上的使用。
1.办事器要撑持apc扩大,没有此扩大的话,百度一下php_apc.dll ,下载一个扩大扩大请求php.5.2以上。
2.设置装备摆设apc相干设置装备摆设,重启apache
PHP Code

  • extension=php_apc.dll   
  • apc.rfc1867 = on   
  • apc.max_file_size = 1000M   
  • upload_max_filesize = 1000M   
  • post_max_size = 1000M   
   
  申明一下:至于参数要配多大,得看项目需求apc.max_file_size,  设置apc所撑持上传文件的巨细,请求apc.max_file_size <=upload_max_filesize  而且apc.max_file_size <=post_max_size.从头启动apache便可完成apc的撑持.
3.在代码外面使用phpinfo();检查apc扩大装置了没有。
4.上面是完成代码:
getprogress.php
PHP Code

  • <?php   
  • session_start();   
  • if(isset($_GET['progress_key'])) {   
  •    $status = apc_fetch('upload_'.$_GET['progress_key']);   
  •    echo ($status['current']/$status['total'])*100;   
  • }   
  • ?>   
  upload.php
PHP Code

  • <?php   
  •     $id = $_GET['id'];   
  • ?>   
  • <form enctype="multipart/form-data" id="upload_form" action="target.php" method="POST">   
  • <input type="hidden" name="APC_UPLOAD_PROGRESS"   
  •         id="progress_key"  value="<?php echo $id?>"/>   
  • <input type="file" id="test_file" name="test_file"/><br/>   
  • <input onclick="window.parent.startProgress(); return true;"   
  •   type="submit" value="上传"/>   
  • </form>   
  
target.php
PHP Code

  • <?php     
  • set_time_limit(600);   
  • if($_SERVER['REQUEST_METHOD']=='POST') {   
  •    move_uploaded_file($_FILES["test_file"]["tmp_name"],   
  •    dirname($_SERVER['SCRIPT_FILENAME'])."/UploadTemp/" . $_FILES["test_file"]["name"]);//UploadTemp文件夹位于此剧本不异目次下   
  •    echo "<p>上传胜利</p>";   
  • }   
  • ?>   
  index.php
PHP Code

  • <?php   
  •     $id = md5(uniqid(rand(), true));   
  • ?>   
  • <html>   
  • <head><title>上传进度</title></head>   
  • <body>   
  • <script src="js/jquery-1.4.4.min.js" language="javascript"></script>   
  •    
  •    
  • <script language="javascript">   
  • var proNum=0;   
  • var loop=0;   
  • var progressResult;   
  • function sendURL() {   
  •              $.ajax({   
  •                          type : 'GET',   
  •                          url : "getprogress.php?progress_key=<?php echo $id;?>",   
  •                          async : true,   
  •                          cache : false,   
  •                          dataType : 'json',   
  •                          data: "progress_key=<?php echo $id;?>",   
  •                          success : function(e) {   
  •                                       progressResult = e;   
  •                                        proNum=parseInt(progressResult);   
  •                                        document.getElementById("progressinner").style.width = proNum+"%";   
  •                                        document.getElementById("showNum").innerHTML = proNum+"%";   
  •                                        if ( proNum < 100){   
  •                                          setTimeout("getProgress()", 100);   
  •                                        }   
  •                                     
  •                          }   
  •              });   
  •       
  • }   
  •    
  • function getProgress(){   
  •   loop++;   
  •    
  •   sendURL();   
  • }   
  • var interval;   
  • function startProgress(){   
  •      document.getElementById("progressouter").style.display="block";   
  •     setTimeout("getProgress()", 100);   
  • }   
  • </script>   
  • <iframe id="theframe" name="theframe"   
  •          src="upload.php?id=<?php echo $id; ?>"   
  •          style="border: none; height: 100px; width: 400px;" >   
  • </iframe>   
  • <br/><br/>   
  • <div id="progressouter" style="width: 500px; height: 20px; border: 6px solid red; display:none;">   
  •     <div id="progressinner" style="position: relative; height: 20px; background-color: purple; width: 0%; "></div>   
  • </div>   
  • <div id='showNum'></div><br>   
  • <div id='showNum2'></div>   
  • </body>   
  • </html>   
理解动态语言的概念,运做机制,熟悉PHP语法
柔情似水 该用户已被删除
19#
发表于 2015-5-6 11:49:03 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
谁可相欹 该用户已被删除
18#
发表于 2015-4-25 14:53:09 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
再见西城 该用户已被删除
17#
 楼主| 发表于 2015-4-25 12:56:48 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
莫相离 该用户已被删除
16#
发表于 2015-4-14 14:11:59 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
不帅 该用户已被删除
15#
发表于 2015-4-11 02:52:42 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
若天明 该用户已被删除
14#
发表于 2015-4-4 10:32:28 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
变相怪杰 该用户已被删除
13#
发表于 2015-4-2 19:21:01 | 只看该作者
实践是检验自己会不会的真理。
兰色精灵 该用户已被删除
12#
发表于 2015-3-26 12:45:36 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
飘飘悠悠 该用户已被删除
11#
发表于 2015-3-24 02:41:09 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-17 08:09:11 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
分手快乐 该用户已被删除
9#
发表于 2015-3-10 14:28:56 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-6 20:04:19 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
小妖女 该用户已被删除
7#
发表于 2015-2-21 08:57:59 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
只想知道 该用户已被删除
6#
发表于 2015-2-16 06:03:32 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
透明 该用户已被删除
5#
发表于 2015-2-13 11:48:51 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
冷月葬花魂 该用户已被删除
地板
发表于 2015-2-8 20:36:30 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
爱飞 该用户已被删除
板凳
发表于 2015-2-5 02:04:54 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
因胸联盟 该用户已被删除
沙发
发表于 2015-2-4 23:10:00 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
精灵巫婆 该用户已被删除
楼主
发表于 2015-2-3 23:47:17 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-22 01:04

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表