《html》

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>相册添加</title>
</head>
<body>
    <center>
    <!--U方法 : {:U('控制器名/方法名')}-->
    <form action="{:U('Indexdo/add_do')}" method="post" enctype="multipart/form-data">
        <table border="1">
            <tr>
                <td>相册名称</td>
                <td><input type="text" name="photo_name"></td>
            </tr>
            <tr>
                <td>相册简介</td>
                <td>
                    <textarea name="photo_desc" id="" cols="30" rows="10">
                    </textarea>
                </td>
            </tr>
            <tr>
                <td>相册封面</td>
                <td><input type="file" name="img"></td>
            </tr>
            <tr>
                <td colspan="2">
                <input type="submit" value="创建相册">
                </td>
            </tr>
        </table>
    </form>
    </center>
</body>
</html>

《控制器》

//添加数据入库

public  function  add_do(){
       $photo = D('Photo');

$data['photo_name']  = I("post.photo_name");
       $data['photo_desc']  =I("post.photo_desc");
       $file = $_FILES['img'];
       $img_info  = $this->upload($file);

$img  = $this->water($img_info);
       $data['photo_img'] =  $img;
       $data['create_time'] = date("Y-m-d H:i:s",time());
       $rest = $photo->add($data);
       if($rest){

$this->success('添加成功',U('Indexdo/show'),3);
       }else{

$this->error('添加失败');
       }
    }

//控制器里文件的上传

public function upload(){   
        $upload = new \Think\Upload();// 实例化上传类 
        $upload->maxSize   =     3145728 ;// 设置附件上传大小 
        $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->savePath  =      './Public/Uploads/'; // 设置附件上传目录  
        $upload->rootPath  =     './'; 
        // 上传文件  
        $info   =   $upload->upload();   
        if(!$info) {// 上传错误提示错误信息  
        $this->error($upload->getError());  
        }else{// 上传成功   
          return $info;
        }

}
//将上面的文件上传方法经过水印方法加工
     public  function  water($img_info){
        $img = $img_info['img']['savepath'].$img_info['img']['savename'];
         $image = new \Think\Image();
          // 在图片右下角添加水印文字 ThinkPHP 并保存为new.jpg
         $water_img  = $img_info['img']['savepath'].'water_'.$img_info['img']['savename'];
         $image->open($img)->text('ThinkPHP','./1.ttf',20,'#000000',\Think\Image::IMAGE_WATER_SOUTHEAST)->save($water_img); 
        return  $water_img;
     }

tp3.2水印上传文件的更多相关文章

  1. TP3.2批量上传文件(图片),解决同名冲突问题

    1.html <form action="{:U('Upload/index')}" enctype="multipart/form-data" meth ...

  2. tp3.2 上传文件及下载文件

    公共方法 UploadFile.class.php() // 开始 , , , ,];];,; ;; ::::::;,) {//文件上传失败 //捕获错误代码$this->error($file ...

  3. 上传文件 file upload 学习笔记

    这里我只会说说一些完成 file upload 的基础 API. 很多项目我们需要上传文件. 有简单的 input file, 有需要验证的,有需要压缩的(img),有需要分段的(video),有需要 ...

  4. PHP开发-上传文件

    <?php /****************************************************************************** 参数说明: $max_ ...

  5. 【.NET】上传文件,生成缩略图

    类名:Upload using System; using System.Collections; using System.ComponentModel; using System.Data; us ...

  6. IE8/9 JQuery.Ajax 上传文件无效

    IE8/9 JQuery.Ajax 上传文件有两个限制: 使用 JQuery.Ajax 无法上传文件(因为无法使用 FormData,FormData 是 HTML5 的一个特性,IE8/9 不支持) ...

  7. 三种上传文件不刷新页面的方法讨论:iframe/FormData/FileReader

    发请求有两种方式,一种是用ajax,另一种是用form提交,默认的form提交如果不做处理的话,会使页面重定向.以一个简单的demo做说明: html如下所示,请求的路径action为"up ...

  8. asp.net mvc 上传文件

    转至:http://www.cnblogs.com/fonour/p/ajaxFileUpload.html 0.下载 http://files.cnblogs.com/files/fonour/aj ...

  9. app端上传文件至服务器后台,web端上传文件存储到服务器

    1.android前端发送服务器请求 在spring-mvc.xml 将过滤屏蔽(如果不屏蔽 ,文件流为空) <!-- <bean id="multipartResolver&q ...

随机推荐

  1. 《图解HTTP》阅读笔记-第五章-web服务器

      第五章.与HTTP协助的web服务器单台虚拟主机实现多个域名可以用单台物理主机运行多台虚拟主机,这些虚拟主机的IP相同,而虚拟主机有可以寄存多个不同主机名和域名的web网站,所以要保证发送HTTP ...

  2. 查看详细linux系统信息的命令和方法

    查看内存大小: cat /proc/meminfo |grep MemTotaluname -a # 查看内核/操作系统/CPU信息的linux系统信息命令head -n 1 /etc/issue # ...

  3. [NodeJS]exit code

    NodeJs 如何返回exit Code code =1; process.emit("exit ") process.reallyExit(code);

  4. C语言之基本编程思想与基本概念扫盲

    前言:C语言是包含了很多编程的基本思想,理解C能够有助于理解其他高级语言,深刻理解编程很多基本思想:这对新手入门是有很多好处的,正所谓磨刀不误砍柴工,内功与基础修炼扎实了,才能开始盖高楼大厦. 这篇文 ...

  5. 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_IL和验证

    1.IL 基于栈——所有指令压入一个执行栈,并从栈弹出结果. 2.IL 指令无类型——指令会判断栈中操作数的类型,并执行恰当的操作. 3.IL 最大优势——应用程序的健壮性和安全性. 将 IL 编译成 ...

  6. Patting Heads

    Description It's Bessie's birthday and time for party games! Bessie has instructed the N (1 < N & ...

  7. ruby 更换源 + sass 安装

    gem sources -c #删除所有镜像地址 gem sources -a http://gems.ruby-china.com #添加ruby-china的镜像地址 原有的org域名更换变成co ...

  8. 二分搜索 - Binary Search

    二分搜索是一种在有序数组中寻找目标值的经典方法,也就是说使用前提是『有序数组』.非常简单的题中『有序』特征非常明显,但更多时候可能需要我们自己去构造『有序数组』.下面我们从最基本的二分搜索开始逐步深入 ...

  9. 创建有关hbase数据库的项目时所遇到的问题

    1.在以前使用其他数据库时,经常会使用id自增来做主键,但是hbase数据库中不知道怎么来设置自增主键,所以我打算不要id自增主键.然后删除原来的表,重新创建表. 删除表语句: 用drop命令可以删除 ...

  10. APP测试总结1

    1.安装.卸载测试 安装.卸载测试主要针对编译后源程序生成的APK安装文件 主要测试点: 1).生成的APK文件在真机上可以安装及下载 2).Android手机端的通用安装工具,如:豌豆荚及91助手等 ...