在PHP.MVC中上传文件
PHP.MVC官方网站上介绍的是使用PEAR::HTTP_Upload 包来处理上传,而我只是用原始的方式来进行上传的处理,主要是为了说明在MVC的框架中怎样上传文件.以后我可能会使用PEAR::HTTP_Upload 包来做.
1.打开phpmvc-config.xml,在<phpmvc-config>标签中加上:
<controller maxFileSize="1048576" tempDir="C:\www\upload\">
</controller>
其中maxFileSize为上传文件大小的最大值,单位是字节,上传的文件会用一个临时的名字存放在php.ini所配置的位置,我们当然要把这些文件另存到我们自己的目录中,tempDir就是这个目录.
2.保存文件.现在写一个php页,里面写一个上传文件的表单:
<form enctype=@#multipart/form-data@# method=@#POST@# action=@#Main.php?do=upload@#>
<input type=@#file@# name=@#file@#><br/>
<input name=@#submit_files@# value=@#上传@# type=@#submit@#>
</form>
其中enctype一定要设定为multipart/form-data
3.写一个ActionForm类,比如叫UploadForm,这个类和普通的ActionForm大同小异,但我们要在其中的validate方法中实现操作上传的文件.首先要得到xml配置文件中的值:
$appConfig =& $this->actionServer->getApplicationConfig($request);
$controllerConfig =& $appConfig->getControllerConfig();
$tmpFileDir = $controllerConfig->getTempDir();
$maxFileSize= intval($controllerConfig->getMaxFileSize(),10);
一定要把文件大小那个用intval函数转换成整形数据.
接着得到我们上传的文件信息:
$upload_file=$_FILES[@#file@#][@#tmp_name@#];
$upload_file_name=$_FILES[@#file@#][@#name@#];
$upload_file_size=intval($_FILES[@#file@#][@#size@#],10);
[@#file@#]是上传表单的名字.tmp_name,name和size分别是这个文件的临时文件地址(包括文件名),源文件名和大小.同样大小也需要转换为整形
下面判断上传的文件是否达到我们的大小要求:
if($upload_file_size > $maxFileSize)
{
//这里做错误处理
}
最后拷贝我们的文件到目的目录:
if (!copy($upload_file,$tmpFileDir.$upload_file_name))
{
//这里做复制失败处理
}
4.下面是Action类,这个类就和普通的Action一样,里面可以做一些文件上传后的处理,也可以直接重定向到上传成功的页面.
5.将你的ActionForm和Action配置到phpmvc-config.xml中去,运行一下试试吧!
- · Tomcat中DataSource的配置方法
- · Windows XP下集成Tomcat与Apache
- · PHP网站中整体防注入方法
- · 非常简单的php模版类--DarasionTemplate
- · 非常简单的php模版类--DarasionTemplate
- · 在Windows中安装Apache2和PHP4的权威指南
- · 智能跳转的404错误页面
- · PHP中轻型模板处理类:Smarty-Light
- · PHP中轻型的数据库抽象类:ADODB Lite
- · PHP的计数器程序:解决全部可能遇到的问题
- · PHP下如何对文件进行加锁
- · PHP和.NET版客户端信息自动生成
- · php作wap开发时遇到的问题
- · PHP实现QQ挂机编程(2):取QQ在线状态
- · Windows环境下用Apache+PHP+MySql配置web服务器(菜鸟版)
- · PHP生成静态页面的两种方法
- · 一个利用PHP语言读取数据库数据的例子
- · php开发中实用的两条sql
- · 使用php 5时MySQL返回乱码的解决办法
- · PHP中静态页处理动态内容的思路
- · FreeBSD下的vi支持中文显示和编辑
- · PHP5在Apache下的两种模式的安装
- · 用php实现qq挂机的程序
- · PHP禁止图片盗链
- · PHP禁止图片盗链
- · PHP 实现的字典序排列算法
- · 用php实现真正的连动下拉列表
- · php如何更好更有效的实现-----用户注册页面
- · PHP和ASP中关于转向函数的区别
- · php删除文件夹及其文件夹下所有文件
- · php用流方式制作缩略图
- · 限制IP访问的思路和PHP代码
- · php生成SessionID和图片校验码的思路和实现
- · 带你走进PHP的世界 PHP新手上路之一
- · php优化及高效提速问题小结
- · 根据来路是否为搜索引擎来决定是否跳出弹窗代码
- · Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
- · php版的验证码程序
