ThinkPHP 上传文件方法
准备工作
在ThinkPHP的家目录中新建文件夹 Uploads
新建图片表
字段名
类型
是否为空
自增
索引
备注
id
int
否
是
primary key
无符号的自增ID
savename
varchar(255)
否
否
无
图片名
path
varchar(255)
否
否
无
图片路径
add_time
varchar(255)
否
否
无
图片添加的时间
参数说明
/**
* 上传文件类型控制
* @param string $path 字符串 保存文件路径示例: /Upload/image/
* @param integer $id 图片ID
* @param string $format 文件格式限制
* @param integer $maxSize 允许的上传文件最大值 52428800
* @param integer $aas 判断返回方式 1为ajax返回 2为rerurn
* @return booler 返回ajax的json格式数据
*/
调用
ajax_upload($path,$id,$format,$maxSize,$$aas);
方法
function ajax_upload($path='file',$id='',$format='empty',$maxSize='52428800',$aas=1){
ini_set('max_execution_time', '0');
// 去除两边的/
$path=trim($path,'/');
// 添加Upload根目录
$path=strtolower(substr($path, 0,6))==='Uploads' ? ucfirst($path) : 'Uploads/'.$path;
// 上传文件类型控制
$ext_arr= array(
'image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp'),
'photo' => array('jpg', 'jpeg', 'png'),
'flash' => array('swf', 'flv'),
'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'),
'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2','pdf')
);
if(!empty($_FILES)){
// 上传文件配置
$config=array(
'maxSize' => $maxSize, // 上传文件最大为50M
'rootPath' => './', // 文件上传保存的根路径
'savePath' => '/'.$path.'/', // 文件上传的保存路径(相对于根路径)
'saveName' => array('uniqid',time()), // 上传文件的保存规则,支持数组和字符串方式定义
'autoSub' => false, // 自动使用子目录保存上传文件 默认为true
'exts' => isset($ext_arr[$format])?$ext_arr[$format]:'',
);
// 实例化上传
$upload=new \Think\Upload($config);
// 调用上传方法
$info=$upload->upload();
$data=array();
if(!$info){
// 返回错误信息
$error=$upload->getError();
$data['error_info']=$error;
if($aas == 1){
echo json_encode($data);
}elseif($aas == 2){
return $data;
}else{
echo json_encode($data);
}
}else{
if($id){
// 存在ID
foreach($info as $file){
$img=D('img')->find($id); //查询出存在的图片信息
unlink('.'.$img['path'].$img['savename']); //删除图片
$image['savename']=$file['savename'];
$image['path']=$file['savepath'];
D('img')->where(array('id'=>$id))->save($image);
$data['name']=trim($file['savepath'].$file['savename'],'.');
$data['ImagesId']=$id;
if($aas == 1){
echo json_encode($data);
}elseif($aas == 2){
return $data;
}else{
echo json_encode($data);
}
}
}else{
// 没有ID
foreach($info as $file){
$image['savename']=$file['savename'];
$image['path']=$file['savepath'];
$image['add_time']=time();
$image_id=D('img')->add($image);
$data['name']=trim($file['savepath'].$file['savename'],'.');
$data['ImagesId']=$image_id;
if($aas == 1){
echo json_encode($data);
}elseif($aas == 2){
return $data;
}else{
echo json_encode($data);
}
}
}
}
}
}