thinkphp框架中的(大)文件上传
最近在学习PHP,首次用其实现文件上传,特此记录,以供初学者参考。
1、先在Lib/Action目录下新建 UpLoadAction.class.php,内容如下:
<?php
class UpLoadAction extends Action {
public function index()
{
$this->display();
}
Public function upload(){
import("ORG.Net.UploadFile");
$upload = new UploadFile();// 实例化上传类
$upload->maxSize = 3145728000 ;// 设置附件上传大小
$upload->allowExts = array("jpg", "gif", "png", "jpeg", "VOB", "avi");// 设置附件上传类型
$upload->savePath = "./Public/Uploads/";// 设置附件上传目录
if(!$upload->upload()) {// 上传错误提示错误信息
$this->error($upload->getErrorMsg());
}else{// 上传成功 获取上传文件信息
$info = $upload->getUploadFileInfo();
}
print_r($info);
// 保存表单数据 包括附件数据
//$User = M("User"); // 实例化User对象
//$User->create(); // 创建数据对象
//$User->photo = $info[0]["savename"]; // 保存上传的照片根据需要自行组装
//$User->add(); // 写入用户数据到数据库
//$this->success("数据保存成功!");
}
}
?>这里没有什么特别,直接复制thinkphp官方文档中的代码即可,我注释掉了数据库部分。
2、在Tpl目录中新建UpLoad文件夹,在其中新建index.html,内容如下:
<form action="upload" method="post" enctype="multipart/form-data"> <input type="file" name="photo1"/> <input type="submit" value="提交"/> </form>此处主要注意 enctype="multipart/form-data" 这一句,如果不正确或者未添加,会提示你没有选择文件。如果是直接从官方文档中拷贝下来的话,一定要注意双引号是否正确,我当时就是直接拷贝过来后由于是汉语双引号,相当于没有添加,导致一直提示没有选择文件。
完成了这两步,在浏览器中输入你的跟路径再加UpLoad/index就可以访问到上传页面了。
当然,以上这些只能上传很小的文件,要实现大文件的上传,还需要修改一些配置:
1、首先修改Php.ini
max_execution_time = 30 ,这个是每个脚本运行的最长时间,单位秒,我修改为:max_execution_time = 1800(时间自己定)
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: PHP上传大文件之前检查文件大小方法
- 下一篇: ThinkPHP--收集表单数据并实现收集添加
copyright © 2008-2019 亿联网络 版权所有 备案号:粤ICP备14031511号-2
