以前也做过文件上传,但是用TP框架做文件上传的原理和以前是差不多的
下面看具体的做法:
第一步:做一个Wenjian控制器:
<?php namespace CeshiController; use ThinkController; class WenjianController extends Controller { public function shangchuan(){ $this->show(); } public function wjsc(){ $upload = new ThinkUpload(); // 实例化上传类 造对象 $upload->maxSize = 1024000; // 设置附件上传大小 $upload->rootPath = "./Public/"; //文件存放的根路径 $upload->savePath = "upload/"; //设置当前文件存放的位置 $upload->exts = array('jpg', 'gif', 'png', 'jpeg'); // 设置附件上传类型 $info = $upload->upload(); //上传文件并返回文件信息 if(!$info) { // 上传错误提示错误信息 echo $upload->getError(); }else{ //上传成功,遍历$info, //因为返回成功上传的文件信息数组是二维数组 foreach($info as $file) { echo "上传成功,文件存放在:".$file['savepath'].$file['savename']; } } } }
第二步:做显示页面 shangchuan.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><block name="title">无标题文档</block></title> </head> <body> <h1>文件上传</h1> <form action="__CONTROLLER__/wjsc" enctype="multipart/form-data" method="post" > <input type="file" name="file" /> <input type="submit" value="上传" > </form> </body> </html>
看一下效果:
点击选中的文件,并打开
文件已经选中:
点击上传:会显示上传成功,并输出 路径 加 文件名
看一下Public文件下的upload文件是否已上传该文件:
选中的图片已经上传到该目录下了~~~~~