【php】面向过程的文件上传过程

 1 //执行完整的文件上传
 2 $path = "./uploads";        //文件上传的指定目录
 3 $upfile = $_FILES[‘pic‘];    //文件的上传信息【一维数组】
 4 $typeList = array(‘image/jpeg‘,‘image/png‘,‘image/gif‘);        //允许用户上传的文件类型列表
 5 $maxSize = 0;                //设置上传文件大小的范围,如果为0表示不限制大小
 6
 7 //格式化路径信息
 8 $path = rtrim($path,"/")."/";
 9
10 //1.判断错误号
11 if($upfile[‘error‘]>0){
12     switch($upfile[‘error‘]){
13         case 1:
14             $info = "表示上传文件的大小超出了约定值";
15         break;
16         case 2:
17             $info = "表示上传文件大小超出了HTML表单隐藏域属性的MAX_FILE_SIZE元素所指定的最大值";
18         break;
19         case 3:
20             $info = "表示文件只被部分上传";
21         break;
22         case 4:
23             $info = "表示没有上传任何文件";
24         break;
25         case 6:
26             $info = "表示找不到临时文件夹";
27         break;
28         case 7:
29             $info = "表示文件写入失败";
30         break;
31     }
32     die("上传失败!原因:{$info}");
33 }
34
35 //2.判断上传文件类型
36 if($typeList && count($typeList)>0){
37     if(!in_array($upfile[‘type‘],$typeList)){
38         die(‘上传失败!原因:系统不允许的上传文件类型!‘);
39     }
40 }else{
41     die(‘上传失败!原因:系统没有定义允许上传的文件列表!‘);
42 }
43
44 //3.判断上传文件大小
45 if($maxSize>0 && $upfile[‘size‘]>$maxSize){
46     die(‘上传失败!原因:上传文件大小超出了系统允许的范围!‘);
47 }
48
49 //4.生成一个新的文件名,避免重名
50 $ext = pathinfo($upfile[‘name‘],PATHINFO_EXTENSION);    //获取后缀名
51 do{
52     $newName = date(‘YmdHis‘).rand(100000000,999999999).".".$ext;
53 }while(file_exists($path.$newName));
54
55 //5.执行文件的移动
56 if(is_uploaded_file($upfile[‘tmp_name‘])){
57     if(move_uploaded_file($upfile[‘tmp_name‘],$path.$newName)){
58         echo "恭喜,上传成功!文件名:".$path.$newName;
59     }else{
60         die(‘上传失败!原因:移动上传文件失败!‘);
61     }
62 }else{
63     die(‘上传失败!原因:不是一个有效的上传文件!‘);
64 }
时间: 2024-12-19 23:56:16

【php】面向过程的文件上传过程的相关文章

php面向对象式多文件上传

使用php 进行多文件的上传是学习php 必不可少的内容,因此我根据 慕课网上的教程改编了下,形成下面的代码,如若有什么问题,请指点指点我这个小菜鸟! upload.class.php: 面向对象的类文件的封装 <?php /** * Created in upload. * FileName: upload.class.php * User: fanfan * Date: 2015/7/30 * Time: 21:26 */ //多文件上传封装 class upload { //protect

SugarCRM安装过程——PHP文件上传限制问题

找到D:\xampp\php目录下,php文件中的php.ini文件,用写字板打开: 1.查找post_max_size,指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值,默认为8M,看你自己需要进行改变.2.查找File Uploads,首先确认file_uploads = on ;是否允许通过HTTP上传文件的开关,默认为ON即是开. upload_tmp_dir ;3.查找upload_max_filesize ;即允许上传文件大小的最大值.默认为2M.4.如果要上传>8M

WEB文件上传下载过程简介(基于Struts2)

WEB文件上传过程简介(基于Struts2),页面上传.Action收取.解析:文件导出 文件处理过程,需要注意对文件的定期清理,避免磁盘占用过多: 1. jsp页面:   <s:file required="true" name ="myFile" theme="zx2"/> <s:form action ="myfile.action" name="form" method =&quo

文件上传到tomcat服务器 commons-fileupload的详细介绍与使用

三个类:DiskFileUpload.FileItem和FileUploadException.这三个类全部位于org.apache.commons.fileupload包中. 首先需要说明一下form表格的enctpye的属性: 表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码.默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传:只有使用了multipart/form-data,

带进度条的文件上传

Ajax技术——带进度条的文件上传 1.概述 在实际的Web应该开发或网站开发过程中,经常需要实现文件上传的功能.在文件上传过程中,经常需要用户进行长时间的等待,为了让用户及时了解上传进度,可以在上传文件的同时,显示文件的上传进度条.运行本实例,如图1所示,访问文件上传页面,单击“浏览”按钮选择要上传的文件,注意文件不能超过50MB,否则系统将给出错误提示.选择完要上传的文件后,单击“提交”按钮,将会上传文件并显示上传进度. 2.技术要点 主要是应用开源的Common-FileUpload组件来

文件上传利器SWFUpload使用指南

SWFUpload是一个flash和js相结合而成的文件上传插件,其功能非常强大.以前在项目中用过几次,但它的配置参数太多了,用过后就忘记怎么用了,到以后要用时又得到官网上看它的文档,真是太烦了.所以索性就把它的用法记录下来,也方便英语拙计的同学查看,利人利己,一劳永逸. SWFUpload的特点: 1.用flash进行上传,页面无刷新,且可自定义Flash按钮的样式; 2.可以在浏览器端就对要上传的文件进行限制; 3.允许一次上传多个文件,但会有一个上传队列,队列里文件的上传是逐个进行的,服务

web 文件上传组件 Plupload

Plupload官网:点击打开链接   建议下载最新版本,低版本会出现浏览器兼容问题. 最近公司有个项目需要在web端使用多文件上传功能,刚开始准备使用HTML5来做,但是IE9以下是都不支持的,于是想到了flash,在网上搜了下各种开源的组件,最后决定使用Plupload,下面来介绍一下该组件使用时遇到的一些问题以及解决方案. 先贴出配置参数: <script type="text/javascript"> // Initialize the widget when th

jquery组件WebUploader文件上传用法详解

这篇文章主要为大家详细介绍了jquery组件WebUploader文件上传用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件,下文来为各位演示一下关于jquery WebUploader文件上传组件的用法. 使用WebUploader还可以批量上传文件.支持缩略图等等众多参数选项可设置,以及多个事件方法可调用,你可以随心所欲的定制你要的上传组件. 接下来我以图片上

Webwork 学习之路(七)文件上传下载

Web上传和下载应该是很普遍的一个需求,无论是小型网站还是大并发访问的交易网站.WebWork 当然也提供了很友好的拦截器来实现对文件的上传,让我们可以专注与业务逻辑的设计和实现,在实现上传和下载时顺便关注了下框架上传下载的实现,在本篇博文中总结记录如下. 1. 包装 Request 请求 每次客户端请求 Action 时,都会调用 WebWork 调度类 ServletDispatcher.service()方法. 具体过程请参照: http://www.cnblogs.com/java-cl