form表单中必须有的一个属性:

enctype=”multipart/form-data”

html的写法:

<form action="__SELF__" method="post" enctype="multipart/form-data">
<table width="100%"class="cont">
<tr>
<td>照片:</td>
<td width="20%"><input type="file" name="pic" id="pic" /></td>
<td colspan="3"><input class="btn" type="submit" value="提交" /></td>
<td>&nbsp;</td>
</tr>
</table>
</form>
php后台写法:
<?php
namespace Admin\Controller;
use Org\Util\Date;
use Think\Controller;
use Think\Image;
use Think\Upload; class UserController extends Controller {
public function add(){
$user = M('user');
if(!empty($_POST)){
$user = $user->create();
//判断传入的图片有没有问题
if($_FILES['pic']['error'] == 0){
$config = array(
'rootPath' => './Application/public/image/' // 设置图片保存路径
);
//new一个上传模型
$upload = new Upload($config);
//上传图片
$pic = $upload->uploadOne($_FILES['pic']);
//将图片保存到数据库中
$user['big_pic'] = $pic['savepath'].$pic['savename']; //生成缩略图
$img = new Image();
//大图片的路径
$big_img = $upload->rootPath.$user['big_pic'];
//打开大图片
$img->open($big_img);
//设置图片大小
$img->thumb(200,300);
//设置绝对路径
$small_img = $upload->rootPath.$pic['savepath'].'small_'.$pic['savename'];
//保存
$img->save($small_img);
//将图片名称存入数据库
$user['img'] = $pic['savepath'].'small_'.$pic['savename']; }
$user['create_date'] = date("Y-m-d H:i:s");
$msg = "添加失败";
if(M("user")->add($user))
$msg = "添加成功";
$this->redirect(show_list,null,3,$msg);
}
$this->display();
}
												

thinkphp中上传图片以及制成缩略图的更多相关文章

  1. PHP.24-TP框架商城应用实例-后台1-添加商品功能、钩子函数、在线编辑器、过滤XSS、上传图片并生成缩略图

    添加商品功能 1.创建商品控制器[C] /www.test.com/shop/Admin/Controller/GoodsController.class.php <?php namespace ...

  2. Js上传图片并生成缩略图

    Js上传图片并显示缩略图的流程为 Js选择文件->Jquery上传图片->服务器接收图片流->存储图片->返回结果到Js端->显示缩略图 本文上传图片所用的Js库是aja ...

  3. [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别

    1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...

  4. ThinkPHP中疑难笔记

    不但要记住核心的东西, 还要记住 相关的 东西: 如php cli的版本是 5.6.14 bulit: sep 30, 2015 tp中, 通常说的系统就是框架; 项目就是 "应用程序&qu ...

  5. thinkphp中的setInc、setDec方法

    thinkphp中setInc.setDec方法 可用于统计字段(通常是数字类型的字段)的更新,例如积分,等级,登陆次数等 必须配合连贯操作where一起使用 $User = M("User ...

  6. ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案

    摘要: ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案 在struts2应用中使用ueditor富文本编辑器上传图片或者附件时,即使配置 ...

  7. ThinkPHP中关于JS文件如何添加类似__PUBLIC__图片路径

    在对html样式进行优化的时候,经常会用到Js/jquery进行一些跳转切换的样式,而我们常做的就是在Js/jquery代码中嵌url图片链接代码,以实现动态交互的页面效果. 如下图所示:

  8. ThinkPHP中initialize和construct的不同

    ThinkPHP中initialize()和construct()这两个函数都可以理解为构造函数,前面一个是tp框架独有的,后面的是php构造函数,那么这两个有什么不同呢? 在网上搜索,很多答案是两者 ...

  9. thinkphp中F方法

    我们已经了解了ThinkPHP中的S方法的用法,F方法其实是S方法的一个子集功能,仅用于简单数据缓存,并且只能支持文件形式,不支持缓存有效期,因为采用的是PHP返回方式,所以其效率较S方法较高,因此我 ...

随机推荐

  1. 测试那些事儿—selenium IDE 自动化测试

    浏览器 Firefox Setup 35.0.1 安装完成后设置菜单栏 关闭浏览器自动更新 插件配置(必备武器) FireBug Firebug是firefox下的一个扩展,能够调试所有网站语言,如H ...

  2. html中头meta信息

    一.页面关键字 网站关键字:用户通过搜索引擎能搜到该网站的词汇.最好控制在10个以内. 基本语法: <meta name="keywords" content="具 ...

  3. JS如何充分“压榨”浏览器

    不同浏览器厂商实现的 JS 标准有所不同,这意味着 window 对象和可用的 api 也有所不同,希望不久的将来,所有浏览器都能实现统一的 JS 标准. 自己写 api 是很耗费时间跟精力的,而且变 ...

  4. ie8的input的placeholder不显示的解决bug

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  5. vue重温之mint-ui------------点击事件绑定

    第一次接触mint-ui,在使用它的tabbar时,为了达到点击切换页面的效果,采用了点击事件的方式,然后就碰到了这么个问题: 是的,点击事件是不起作用的. 然后刚好一个朋友也在做这块,而且有一段时间 ...

  6. Python基础:五、Python程序的编写方式

    python程序有两种编写方式: 1. 进入cmd控制台(linux终端),输入python进入编辑模式,这时候我们可以直接编写python程序 2. 也可以在.py文件中编写python代码,通过p ...

  7. .Net牛刀小试-1缓冲使用

    根据文件名缓冲文件: /// <summary> /// 根据文件名缓冲指定目录文件 /// </summary> public class FileCacheAdapter ...

  8. maven 灵活构建

    灵活构建 项目的构建根据不同的情况可能需要有一定的差异,比如编译级别.依赖.打包的属性文件等在不同的运行环境中可能需要有不同的值.为了实现灵活构建,Maven内置了三个特性: 属性:在POM中通过${ ...

  9. 使用 AppScan 进行扫描

    针对大型网站的扫描,我们按照戴明环 PDCA 的方法论来进行规划和讨论,建议 AppScan 使用步骤:计划(Plan).执行(Do).检查(check).分析(Analysis and Action ...

  10. py-day4-3 python 内置函数 man和mix的高级使用

    ### man和mix的高级使用 age_dic={'xiaoma':18,'zhangfei':20,'xiaowang':36,'lihao':13,} print(max(age_dic.val ...