大师笔记之PHP上传文件代码
创始人
2024-06-11 19:20:34
0

PHP还是比较常用的,对于它的强大功能想必大家也都知道了,我们这里就实现PHP上传文件代码分析。PHP之所以很难实现上传进度条是因为在我们上传文件到服务器的时候,要等到文件全部送到服务器之后,才执行相应的php文件。在这之前,文件数据保存在一个临时文件里面,而php无法获得这个文件的路径及大小。

#T#从Actionscript 2.0开始,Flash支持文件上传及下载了。虽然不能在服务端获得文件上传进度,但我们可以在服务端获得文件的发送进度。根据这个原理,用Flash就能做出上传进度条效果。我在网上看到过一些资料,但是感觉有缺陷。于是自己研究了一下,在前人的基础上加强了程序的安全性和健壮性,并且增加了一些可自定义的参数。 目前我知道的方法有两种,一种是使用PHP的创始人RasmusLerdorf写的APC扩展模块来实现,另外一种方法是使用PECL扩展模块uploadprogress实现我这里举两个分别实现的例子供参考,更灵活的应用根据自己需要来修改。

php上传文件判断要存放的路径是否存在 is_dir(),if文件的类型是否达到要求 explode('.',name)array() in_array(),if文件的大小是否达到要求 $_FILES[size]可以上传了 move_uploaded_file($_FILES[]['tmp_name'],要存放的路径和文件名称)原名存放直接拿$_FILES[]['name'] 还是重命名:time()。

PHP上传文件代码: 

  1. function uploafile($path,$filesize=10241000,$type=1)  
  2. {  
  3. if(!empty($path) && !file_exists($path))  
  4. {  
  5.  echo '上传文件的路径不存在';exit;  
  6. }  
  7. //允许上传的文件类型  
  8. $filetype = array 
  9. (  
  10.  1 => array('gif','png','jpg','jpeg','bmp'),  
  11.  2 => array('swf','flv'),  
  12.  3 => array('rm','rmvb','avi','wmv','mpg','asf','mp3','wma','wmv','mid'),  
  13.  4 => array('txt','doc','xls','ppt','pdf','xml','rar','zip','gzip','cab','iso','sql'),  
  14.  6 => array('exe','com','scr','bat')  
  15. );  
  16. //上传文件类型数组合并  
  17. $filetype[5] = array_merge($filetype[2],$filetype[3]);  
  18. //获得$_FILES数组的所有key  
  19. $arr_key = array_keys($_FILES);  
  20. //判断要上传的文件名称  
  21. $file = $_FILES[$arr_key[0]];  
  22. $exten = check_file_type($file['name']);  
  23. //判断文件上传类型  
  24. if($type!=7 && !in_array($exten,$filetype[$type]))  
  25. {  
  26.  echo $file['name'].'的文件类型不符合要求!';exit;  
  27. }  
  28. //判断文件大小  
  29. if($file['size']>$filesize)  
  30. {  
  31.  echo $file['size'].'的文件大小不能超过'.$filesize.'字节';exit;  
  32. }  
  33. //开始上传  
  34. //move_uploaded_file($file['tmp_name'],$path.$file['name']);  
  35. //为了避免覆盖,重命在旦夕名该文件  
  36. $newname = time().'.'.$exten;  
  37. move_uploaded_file($file['tmp_name'],$path.$newname);  
  38. return $newname;  
  39. }  
  40.  
  41. echo uploafile('',$filesize=10241000,$type=3);  
  42. ?> 

以上就是详细PHP上传文件代码,很简单吧。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...