热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phptp文件上传,ThinkPHP上传文件方法

ThinkPHP上传文件方法准备工作在ThinkPHP的家目录中新建文件夹Uploads新建图片表字段名类型是否为空自增索引备注idint否是primarykey无符号的自增IDs

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);

}

}

}

}

}

}



推荐阅读
author-avatar
Fxnananana
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有