热门标签 | 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);

}

}

}

}

}

}



推荐阅读
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文详细解析了 Yii2 框架中视图和布局的各种函数,并综述了它们在实际开发中的应用场景。通过深入探讨每个函数的功能和用法,为开发者提供了全面的参考,帮助他们在项目中更高效地利用这些工具。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
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社区 版权所有