《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. 10.20 olinr

    感谢olinr提供md文件 免得我整理格式了 1.求助 (help.cpp/c/pas) [问题背景] 马上就要noip了,lrt同志\(\displaystyle\begin{vmatrix}\te ...

  2. kuangbin专题十六 KMP&&扩展KMP HDU2328 Corporate Identity

    Beside other services, ACM helps companies to clearly state their “corporate identity”, which includ ...

  3. linux中tomcat内存溢出

    刚开始测试服务器与线上后台都不能上传10分钟以上的视频,后来只要是视频就不能上传,进入服务器查日志得到如下错误: Caused by: java.lang.OutOfMemoryError: Java ...

  4. Mybatis学习笔记(三) —— DAO开发方法

    一.SqlSession的使用范围 SqlSession中封装了对数据库的操作,如:查询.插入.更新.删除等. SqlSession通过SqlSessionFactory创建. SqlSessionF ...

  5. buildKibanaServerUrl

    private String buildKibanaServerUrl(DiscountIndexMailData mailData,Statistic stat,String failureCaus ...

  6. Python的Profilers性能分析器

    关于Python Profilers性能分析器 关于性能分析,python有专门的文档,可查看:http://docs.python.org/library/profile.html?highligh ...

  7. Linux学习grep,sed,awk工具的使用

    1.grep:根据模式搜索文本并将符合模式的文本显示出来(pattern模式:由文本字符和正则表达式元字符所匹配出来的条件) 注:alias grep='grep --color' -c:打印符合要求 ...

  8. vue父子组件通信(prop)

    先定义子组件,注册prop接收父组件传递的值 <template> <div> <div>{{message}}(子组件)</div> </div ...

  9. 转 python trace walk DEMO

    https://blog.csdn.net/steadfast123/article/details/46965125 #quote from 'introduction to computation ...

  10. android window(二)从getSystemService到WindowManagerGlobal

    在Activity调用getSystemService(WINDOW_SERVICE) 调用的是父类ContextThemeWrapper package android.view; public c ...