php文件上传的增强函数首先变得傻瓜简单化,但并不是该函数的简单化就影响他的超强功能,并且加上了强大的除错功能这是一函数,当然你可以把它变成一个类的方法!
表单中file对象,比如说$_FILES['doc'],$path为保存的路径,$type为限制上传的类型(他是一个数组,比如说限制上传doc和docx和格式,那这个参数可以填array(“doc”,”.docx”),而且扩展名前有无”.”不作要求)。
代码:
返回值为一数组
$key value
error 错误详情
errorid 错误id(出现错误才有值)
type 文件扩展名(扩展名前带“.”)
upname 上传的文件名
time 上传的时间(从 Unix 纪元(1970-01-01 00:00)开始至今的秒数)
错误类型
errorid error
false //上传成功
1 上传失败,文件大小超出了服务器的空间大小!
2 上传失败,要上传的文件大小超出浏览器限制!
3 上传失败,文件仅部分被上传!
4 上传失败,没有找到要上传的文件!
5 上传失败,服务器临时文件夹丢失!
6 上传失败,文件写入到临时文件夹出错!
8 没有上传该类型文件! //表单中file对象为空
10 上传失败,位置错误!
表单中file对象,比如说$_FILES['doc'],$path为保存的路径,$type为限制上传的类型(他是一个数组,比如说限制上传doc和docx和格式,那这个参数可以填array(“doc”,”.docx”),而且扩展名前有无”.”不作要求)。
代码:
<?php function upload($file,$path,$type){ $state = array(); $state['error'] = "true"; $alltype = ""; // 所有可以上传的类型,用"/"连接起来 $path = trim($path); //为$path末尾加上"/" if(strlen(strrchr($path,‘/‘)) <= 1){ $path .= "/"; } //为类型加上开头“.” //将所有类型合成字符串,用"/"连接起来<span id="more-78"></span> foreach($type as $key=>$typeone){ $type[$key] = $typeone = trim($typeone); if(strlen(strchr($typeone,".")) != strlen($typeone)){ $type[$key] = ".".$typeone;} $alltype .= $typeone.‘/‘; } www.jbxue.com $alltype = substr($alltype,0,strlen($alltype)-1); //去掉最后的“/” if(empty($file['name'])){ $state['error'] = "没有上传{$alltype}类型文件!"; $state['errorid'] = 8; return $state; } else { if (!$file['error']) { $state['name'] = $file['name']; $state['type'] = strrchr($state['name'],‘.‘); if(in_array($state['type'],$type)){ $time = date("U"); $state['upname'] = $time.rand(1000,9999).$state['type']; //文件命名 if(copy($file['tmp_name'],$path.$state['upname'])){ $state['time'] = date("U"); //上传的时间 $state['error'] = false; return $state; } else { switch($file(‘error‘)){ case 1: $state['error'] = $state['name']."上传失败,文件大小超出了服务器的空间大小!";$state['errorid'] = 1;return $state; case 2: $state['error'] = $state['name']."上传失败,要上传的文件大小超出浏览器限制!";$state['errorid'] = 2;return $state; case 3: $state['error'] = $state['name']."上传失败,文件仅部分被上传!";$state['errorid'] = 3;return $state; case 4: $state['error'] = $state['name']."上传失败,没有找到要上传的文件!";$state['errorid'] = 4;return $state; case 5: $state['error'] = $state['name']."上传失败,服务器临时文件夹丢失!";$state['errorid'] = 5;return $state; case 6: $state['error'] = $state['name']."上传失败,文件写入到临时文件夹出错!";$state['errorid'] = 6;return $state; default: $state['error'] = $state['name']."上传失败,位置错误!";$state['errorid'] = 10;return $state; } } } else { $state['error'] = $state['name']."上传失败!不符合所要上传的文件类型!({$alltype})"; $state['errorid'] = 10; return $state; } } } ?>
返回值为一数组
$key value
error 错误详情
errorid 错误id(出现错误才有值)
type 文件扩展名(扩展名前带“.”)
upname 上传的文件名
time 上传的时间(从 Unix 纪元(1970-01-01 00:00)开始至今的秒数)
错误类型
errorid error
false //上传成功
1 上传失败,文件大小超出了服务器的空间大小!
2 上传失败,要上传的文件大小超出浏览器限制!
3 上传失败,文件仅部分被上传!
4 上传失败,没有找到要上传的文件!
5 上传失败,服务器临时文件夹丢失!
6 上传失败,文件写入到临时文件夹出错!
8 没有上传该类型文件! //表单中file对象为空
10 上传失败,位置错误!
发表评论
-
php发送post请求函数
2014-03-10 09:08 529一个php发送post请求的函数。 代码如下: < ... -
php function用法如何递归及return和echo区别
2014-03-10 09:07 638php function用法如何递归及return和echo区 ... -
PHP数据过滤函数参考
2014-03-10 09:06 5201、php提交数据过滤的基 ... -
PHP_Cooikes不同页面无法传递怎么办
2014-03-08 08:11 338PHP_Cooikes不同页面无法传递的解决方法。 刚开始设置 ... -
php统计文章排行的代码
2014-03-06 17:11 617php统计文章排行示例,代码可以用在dedemcs上按月、周 ... -
c#批量上传图片到服务器示例分享
2014-03-06 17:07 1181c#批量上传图片到服务 ... -
php 启动报错的解决办法
2014-01-18 07:31 537php 启动时报错的情况,如下: [root@abc lnmp ... -
PHP 图片文件上传代码
2014-01-11 08:23 555通过 PHP,可以把文件上传到服务器。里面加入一些图片的判断, ... -
PHP文件上传原理分析
2014-01-11 08:20 312PHP文件上传原理简单分析,学习php的朋友可以参考下,确实比 ... -
php ftp文件上传函数(基础版)
2014-01-11 08:19 455不会用于php ftp函数文件上传,但有在使用比较高级的WEB ... -
PHP生成随机用户名和密码的代码
2014-01-06 23:19 494使用PHP生成随机数可以应用在许多地方,比如可以设计程序的随机 ... -
PHP常见数据类型的汇总分享
2014-01-06 23:17 498PHP中常见的数据类型,特此记录。 PHP编程中常用的数据 ... -
php加减乘除计算器简单实现代码
2014-01-06 23:15 1164加减乘除计算器用php实现的,不错的示例。 代码: < ... -
PHP变色验证码实例
2014-01-06 23:13 436PHP实现变色验证码。 代码: <?php /** ... -
统计目录文件大小的php函数
2013-03-12 10:33 1118早上刚到公司,头告诉我,抓紧写一个小函数,用来统计指定目录中文 ... -
php 文件上传 简单代码
2013-03-10 08:15 7421、程序文件 <?php //判断临时文件存放路径是否 ... -
php上传图片的原理分析
2013-03-10 08:08 933在php编程中,有关php上传图片的问题,随时会遇到。 ph ... -
php无法上传大文件的解决方法
2013-03-07 22:59 737开发一个文件上传共享网站,曾想使用下面的代码实现文件上传的功能 ... -
php替换网址中参数变量的代码
2013-03-05 03:59 1005发布:thatgirl 来源:net 阅读: 6 ... -
php中文字符串截取函数支持多种编码
2013-03-05 03:57 739发布:sunday01 来源:net 阅读: 1 ...
相关推荐
根据提供的文件信息,这里详细讲解了PHP上传文件增强函数的实现细节和工作原理。 首先,函数的目的是为了简化文件上传的过程,使上传功能变得“傻瓜简单”,但同时保证了功能的强大性和健壮性。函数中增加了强大的...
在本项目中,"PHP 简单实现文件上传、保存、下载的功能(云盘)",我们主要关注的是如何利用PHP构建一个基本的云存储服务,让用户能够在自己的账户空间内进行文件的操作。以下是对涉及的技术点的详细解释: 1. **PHP*...
PHP中处理文件上传的核心函数是`$_FILES`全局数组,它包含了关于上传文件的所有信息,如临时文件名、文件大小、错误代码等。例如: ```php if(isset($_POST["submit"])) { $target_dir = "uploads/"; $target_...
在PHP 5.2版本之前,文件上传功能可能存在一些限制,比如对上传文件大小的限制。如果在PHP 5.2以下的版本出现上传失败的情况,可能是因为服务器配置的问题,例如`upload_max_filesize`和`post_max_size`设置得过小,...
// 上传文件到FTP服务器 ``` 5. `ftp_close()`:关闭FTP连接。 ```php ftp_close($ftp_conn); // 关闭FTP连接 ``` 在实际应用中,我们还需要处理各种异常情况,例如检查连接和登录是否成功,处理文件上传失败等...
在ThinkPHP框架中,文件上传主要通过`request`对象的`file`方法来获取上传的文件信息,然后利用PHP内置的`move_uploaded_file`函数将临时文件移动到服务器上的目标位置。为了支持批量上传,开发者需要遍历`file`方法...
在现代Web应用程序中,异步文件上传是一项常见且必要的功能,它允许用户在不刷新整个页面的情况下上传文件。然而,传统的XMLHttpRequest对象无法直接处理文件上传,因为它们不支持二进制数据流。因此,我们需要结合...
在服务器端,通过`$_FILES['filename']`来访问上传文件的信息,然后使用`move_uploaded_file()`移动文件到目标位置。 3. **多个文件上传**: HTML5引入了`multiple`属性,允许用户在文件输入框中选择多个文件。PHP...
`$_FILES`全局数组存储了所有上传文件的信息,如文件名、大小、类型等。例如,如果表单字段名为`image`,则`$_FILES['image']`将包含该文件的相关信息。 然后,我们需要检查文件是否上传成功,这可以通过`$_FILES['...
可以通过检查文件扩展名、使用`move_uploaded_file()`函数移动文件而不是`copy()`或`fopen()`,以及限制可接受的文件类型和大小来增强安全性。 7. **错误处理和反馈** 前后端都需要提供良好的错误处理机制,确保...
在本文中,我们将深入探讨四种主要的文件上传技术:ASP上传、PHP上传、.NET上传以及多文件上传,并结合提供的压缩包文件名称"CFUpload121"来分析相关知识点。 首先,ASP(Active Server Pages)是一种微软开发的...
- **文件类型检查**: 使用`mime_content_type()`或`finfo_file()`检查上传文件的实际类型,防止上传恶意脚本(如PHP、JavaScript)。 - **文件大小限制**: 设置`max_file_uploads`,`upload_max_filesize`和`post_...
5. **客户端组件**: 提供的客户端可能是一个HTML页面或JavaScript应用,利用AJAX技术异步上传文件,增强用户体验。它可能使用了如jQuery, Axios, or Fetch API等库来处理异步请求。 6. **多文件上传**: 使用HTML5的...
支持一次选择并上传多个文件,增强了用户体验。用户不再需要逐个选择文件,可以一次性处理一批文件,提高上传效率。 4. **与PHP集成** 压缩包中的“支持php”标签表明SWFUpload可以与PHP服务器端脚本无缝集成,...
【基于WampServer2.5的PHP上传读取数据文件包】是一个用于本地开发环境的工具,它结合了Apache服务器、MySQL数据库和PHP解释器,为开发者提供了在Windows平台上搭建Web应用的便捷途径。WampServer2.5是这个集成环境...
// 如果所有检查都通过,尝试上传文件 if ($uploadOk == 0) { echo "文件未上传。"; } else { if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { echo "文件 ". htmlspecialchars( basename...
总的来说,通过结合jQuery、PHP和Uploadify,我们可以构建一个高效、直观的文件上传系统,其中的进度条功能增强了用户的交互体验,使得文件上传过程更加透明和可控。在实际开发中,可以根据具体需求进行功能扩展和...
dhtmlxVault是一款强大的JavaScript组件,专为在Web应用程序中实现多文件上传功能而设计。这个组件基于Ajax技术,提供了一种用户友好的界面,让用户能够方便地上传多个文件到服务器,无需刷新整个页面。dhtmlxVault...
在PHP中,`$_FILES`全局数组包含了上传文件的信息: ```php $file = $_FILES['file']; $fileName = $file['name']; $fileTmpName = $file['tmp_name']; $fileSize = $file['size']; $fileError = $file['error']; /...