使用thinkphp实现上传文件(uploadify插件)

时间:2022-08-28 12:23:47

语言:php

框架:thinkphp3.2.3

上传插件:uploadify

插件包:点击这里下载

1、在html页面或者模板中引入CSS和JS

<link rel="stylesheet" type="text/css" href="__PUBLIC__/uploadfy/uploadify.css" />
<script type="text/javascript" src="/Public/uploadfy/jquery.uploadify.min.js"></script>

2、在html中放入上传按钮
<input id="upload_button" type="file" multiple="true" value="" />


3、使用JS初始化按钮并绑定事件
$('#upload_button').uploadify({
'swf' : '/Public/uploadfy/uploadify.swf',
'uploader' : '/Manage/Admin/uploadify',//这个就是处理上传文件的地址
'buttonText' : '上传照片',
'onUploadSuccess' : function(file, data, response) {
data.trim();//这个是文件在服务器上的路径,如果是图片,可以使用src
}
});

4、thinkphp的Manage模块下Admin控制器的uploadify

public function uploadify(){
if (!empty($_FILES)) {
import("@.Think.UploadFile");
$upload = new \Think\Upload();
$upload->rootPath = 'upload/';//根路径
$upload->savePath = date('Y').'/'.date('m').'/'.date('d').'/';//子路径,文件夹自动分级好点,不然文件太多了数量大了以后不好找图片
$upload->exts = array('jpg', 'gif', 'png', 'jpeg', 'bmp', 'doc', 'xls', 'mp4', 'avi', 'docx', 'xlsx');//可以上传的文件类型
$upload->autoSub = false;
$upload->saveRule = uniqid; //上传规则,文件名会自动重新获取,这样保证文件不会被覆盖
$info = $upload->upload();
if(!$info){
echo $this->error($upload->getError());//获取失败信息
} else {
//成功
$fileArray = "";
foreach ($info as $file) {
//返回文件在服务器上的路径
$fileArray = '/'.$upload->rootPath . $file['savepath'] . $file['savename'];
}
echo trim($fileArray);
}
}
}