thinkphp文件上传与下载
来源:互联网 发布:网络交友新时空ppt 编辑:程序博客网 时间:2024/06/05 08:04
首先说上传
上传比较简单
<form action="上传的地址" method="post enctype="multipart/form-data">//<span style="font-family: Verdana, Arial, 宋体; line-height: 18px; background-color: rgb(249, 249, 249);"> enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,需要使用 "multipart/form-data"。</span><input name="file" type="file" /><input name="file" type="submit" value="upload"/></form>
以上就是HTML内容,很简单,就是一个form表单
有了上面的表单,在后台之后处理下前台传过来的内容就可以,在action中添加下面的方法
public function upload() { import('ORG.Net.UploadFile'); $upload = new UploadFile();// 实例化上传类 $upload->maxSize = 3145728 ;// 设置附件上传大小 $upload->allowExts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $upload->savePath = './Public/Uploads/';// 设置附件上传目录 if(!$upload->upload()) {// 上传错误提示错误信息 $this->error($upload->getErrorMsg()); }else{// 上传成功 $this->success('上传成功!');<span style="font-family: Arial, Helvetica, sans-serif;">//这个地方按需求决定是否添加到数据库中</span> } }注释,要是需要把文件添加到数据库中,就需要在上穿成个的代码块另行编写 了
下载,在thinkphp中没有提供,只有一个SAE的解决方案,总感觉不好用就自己找原生的php,
先说没有把文件信息保存在数据库中的情况:
首先在action里面添加下面的方法
public function upload() { $filename=$_GET["filename"]; download($filename);}
这个download我写成了公共方法,哪里都可以调用,代码如下
<? function download($filename){$filedir= "./up/"; //下载文件存放目录 //检查文件是否存在 if (! file_exists ( $<span style="font-family: Arial, Helvetica, sans-serif;">filedir</span>. $filename )) { echo "the file is not found"; } else { //打开文件 $file = fopen ( $filedir . $filename, "r" ); //输入文件标签 Header ( "Content-type: application/octet-stream" ); Header ( "Accept-Ranges: bytes" ); Header ( "Accept-Length: " . filesize ( $filedir . $filename ) ); Header ( "Content-Disposition: attachment; filename=" . $filename ); //输出文件内容 //读取文件内容并直接输出到浏览器 echo fread ( $file, filesize ( $filedir . $filename ) ); fclose ( $file ); } }?>
上面的就是下载的后台方法,下载上传都可以完成,但是也有瑕疵,就是有些浏览器下不支持中文,会出现乱码,这个就是自己发挥吧,网上一大堆
0 0
- thinkphp文件上传与下载
- ThinkPHP与PHP的上传与下载
- 文件上传与下载----上传
- 文件上传与下载
- 文件上传与下载
- 上传与下载文件
- 文件上传与下载
- 文件上传与下载
- 文件上传与下载
- 文件上传与下载
- 文件上传与下载
- 文件上传与下载
- 文件上传与下载
- 文件上传与下载
- 文件上传与下载
- 文件上传与下载
- 文件上传与下载
- 文件下载与上传
- js中SetInterval与setTimeout用法
- oracle 的起源和发展
- codeblocks中设置gcc的链接方式
- Codeforces Round #268 (Div. 2) C 24 Game [构造]
- D层重构一《Sqlhelper》
- thinkphp文件上传与下载
- C++ rand,srand用法
- QT学习点滴记录(四)
- C++ explicit构造函数----禁止隐式格式转换
- js笔记之Math random()、ceil()、floor()、round()
- Explicit——谨慎定义隐式类型转换函数
- UNIX基本命令-目录及文件操作
- [cocos2d] 谁摸了我一下----触摸事件处理
- [cocos2d] 利用texture atlases生成动画