thinkphp上传文件

	/*
	 * 单文件上传接口
	 */
	public function upload() {
		if (!empty($_FILES)) {
			$upload = new \Think\Upload();
			$upload -> maxSize = 2 * 1024 * 1024;
			// 设置文件最大2M
			// 允许上传的文件后缀(留空为不限制),使用数组或者逗号分隔的字符串设置,默认为空
			$upload -> exts = array('jpg', 'gif', 'png', 'jpeg');
			// 允许上传的文件类型(留空为不限制),使用数组或者逗号分隔的字符串设置,默认为空
			$upload -> mimes = '';
			$upload -> rootPath = './Uploads/';
			// 设置附件上传根目录
			$upload -> savePath = '';
			// 设置上传的子目录
			$upload -> saveName = 'uniqid';
			// 上传文件的保存规则,支持数组和字符串方式定义
			$upload -> saveExt = '';
			// 上传文件的保存后缀,不设置的话使用原文件后缀
			$upload -> replace = true;
			// 存在同名文件是否是覆盖,默认为false
			$upload -> autoSub = true;
			// 自动使用子目录保存上传文件 默认为true
			$upload -> subName = array('date', 'Ymd');
			// 子目录创建方式,采用数组或者字符串方式定义
			$upload -> hash = true;
			// 是否生成文件的hash编码 默认为true

			// 上传成功
			if ($fileInfo = $upload -> uploadOne($_FILES['image'])) {
				$upoadRoot = './Uploads/';
				$filename = $fileInfo['savename'];
				$savepath = $fileInfo['savepath'];

				// 添加水印
				$image = new \Think\Image();
				$path = $upoadRoot . $savepath . $filename;
				$image -> open($path) -> water('./Public/Images/logo.png') -> save($path);

				/*
				 * 把上传的路径写入数据库
				 */
				$photoModel = M('Photo');
				$data['image'] = $path;
				$data['create_time'] = NOW_TIME;
				// 时间截

				if ($photoModel -> add($data)) {
					$this -> success('上传成功');
				} else {
					$this -> error($photoModel -> getError());
				}
			} else {// 上传出错
				$this -> error($upload -> getError());
			}
		} else {
			$this -> error('请选择文件');
		}
	}

这个过程中出现了 操作出现错误的提示,是由于我把add方法写成了save方法了,花了不少时间来排查。

时间: 2024-10-30 19:48:02

thinkphp上传文件的相关文章

thinkphp表单上传文件并将文件路径保存到数据库中_php实例

上传单个文件,此文以上传图片为例,上传效果如图所示 创建数据库upload_img,用于保存上传路径 CREATE TABLE `seminar_upload_img` ( `id` int(11) NOT NULL AUTO_INCREMENT, `img_name` varchar(255) DEFAULT NULL COMMENT '图片名称', `img_url` varchar(255) DEFAULT NULL COMMENT '图片路径', `create_time` text,

thinkphp表单上传文件并将文件路径保存到数据库中

上传单个文件,此文以上传图片为例,上传效果如图所示 创建数据库upload_img,用于保存上传路径 CREATE TABLE `seminar_upload_img` ( `id` int(11) NOT NULL AUTO_INCREMENT, `img_name` varchar(255) DEFAULT NULL COMMENT '图片名称', `img_url` varchar(255) DEFAULT NULL COMMENT '图片路径', `create_time` text,

thinkphp-ThinkPHP框架使用upload上传文件后如何下载?

问题描述 ThinkPHP框架使用upload上传文件后如何下载? 如题 public function upload(){ $upload = new ThinkUpload();// 实例化上传类 $upload->maxSize = 0 ;// 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $upload->rootPath = './Uploads/'; // 设置附件上传根目录 $

php限制上传文件类型并保存上传文件的方法

 这篇文章主要介绍了php限制上传文件类型并保存上传文件的方法,涉及php针对上传文件的常用操作技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了php限制上传文件类型并保存上传文件的方法.分享给大家供大家参考.具体如下: 下面的代码演示了php中如何获取用户上传的文件,并限制文件类型的一般图片文件,最后保存到服务器 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3

IE上传文件到服务器

前言:项目用的是struts1,想要上传文件必须用jsp,传输指定类型写struts1标签,这样局限性太强,果断放弃,写一个servlet来实现. web.xml <servlet> <display-name>UploadServlet</display-name> <servlet-name>UploadServlet</servlet-name> <servlet-class>com.phlx.product.wx.action

javascript-js 获取上传文件的绝对路径

问题描述 js 获取上传文件的绝对路径 各位,用标签上传文件,想要获取上传文件的绝对路径 不知道怎样获取 麻烦告知 感激不尽 解决方案 不是所有的浏览器都会报告绝对路径.如果浏览器不报告,不允许js访问,没有办法获得. 如果限定ie,特定的版本,可以用fso或者自己写activex 解决方案二: 浏览器安全问题,ie7+需要配置过安全才会返回实际路径,其他浏览器不行.而且你获取客户端路径也没什么意义..除非是黑客.. 解决方案三: 在html中 ???? ???? function?upload

用菜鸟的眼光浅谈php上传文件

本人由于想写个discuz插件,这个插件功能上涉及到上传文件这一功能,故以菜鸟的眼光来学习了下php上传文件.   首先,w3cshool查了下案例,觉得他说的非常详细,连我这个菜鸟都略懂了一二.   贴上地址:http://www.w3school.com.cn/php/php_file_upload.asp   照着这个讲解,写了下他这个demo,贴上代码:   html:   <form action="demo.php" method="post" e

利用Xmlhttp 分块上传文件

xml|上传 编写思路:把本地文件在客户端通过base64编码以后发送目的地.测试过程中,上传文件过大,导致超时不成功.后来经过改善.把编码分段发送.测试20M成功 编写目的:在传统的解决方案里面,一次一次选取上传可以.但是在碰到把数据库里文件路径读出来,并把这些文件上传到一个地方的时候就比较麻烦.如果得到路径一个一个去找到用ftp当然也是可以的,但每次找这些文件我看都会比较费时.这里编写这个主要就是为了通过数据库里的文件路径取得文件.把文件一次批量上传到一个地方.其主要目的还是为了锻炼一下自己

JSP实现上传文件的两种方法

js|上传 在用Java开发企业器系统的使用,特别是涉及到与办公相关的软件开发的时候,文件的上传是客户经常要提到的要求.因此有 一套很好文件上传的解决办法也能方便大家在这一块的开发. 首先申明,该文章是为了自己记录一备以后开发需要的时候,不用手忙脚乱哈哈........ 现在在国内用的非常多的一般是两种方法解决来解决文件上传. cos.jar + uploadbean.jar + filemover.jar 这个是用的非常普遍的,原因是因为他操作方便,是我们不必再去关注,那些文件的输入和输出流,