本文标签:PHP上传文件代码
PHP还是比较常用的,对于它的强大功能想必大家也都知道了,我们这里就实现PHP上传文件代码分析 。PHP之所以很难实现上传进度条是因为在我们上传文件到服务器的时候,要等到文件全部送到服务器之后,才执行相应的php文件 。在这之前,文件数据保存在一个临时文件里面,而php无法获得这个文件的路径及大小 。
- 经验总结:示例PHP上传文件代码
- 五分钟解决PHP上传文件代码演示
- 挖掘PHP上传文件类型原理实现
- 三步FTP实现PHP上传文件代码剖析
- 两种PHP上传文件大小限制解决方案
从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上传文件代码: - function uploafile($path,$filesize=10241000,$type=1)
- {
- if(!empty($path) && !file_exists($path))
- {
- echo 上传文件的路径不存在;exit;
- }
- //允许上传的文件类型
- $filetype = array
( 1 => array(gif,png,jpg,jpeg,bmp), 2 => array(swf,flv), 3 => array(rm,rmvb,avi,wmv,mpg,asf,mp3,wma,wmv,mid), 4 => array(txt,doc,xls,ppt,pdf,xml,rar,zip,gzip,cab,iso,sql), 6 => array(exe,com,scr,bat) ); //上传文件类型数组合并 $filetype[5] = array_merge($filetype[2],$filetype[3]); //获得$_FILES数组的所有key $arr_key = array_keys($_FILES); //判断要上传的文件名称 $file = $_FILES[$arr_key[0]]; $exten = check_file_type($file[name]); //判断文件上传类型 if($type!=7 && !in_array($exten,$filetype[$type])) { echo $file[name].的文件类型不符合要求!;exit; } //判断文件大小 if($file[size]>$filesize) { echo $file[size].的文件大小不能超过.$filesize.字节;exit; } //开始上传 //move_uploaded_file($file[tmp_name],$path.$file[name]); //为了避免覆盖,重命在旦夕名该文件 $newname = time()...$exten; move_uploaded_file($file[tmp_name],$path.$newname); return $newname; } echo uploafile(,$filesize=10241000,$type=3); ?>
以上就是详细PHP上传文件代码,很简单吧 。
|