zoukankan      html  css  js  c++  java
  • onethink上传图片(资源)和预览

    直接上干货 不废话了

    普通上传:  onthink框架 后台已经有图片和文件上传功能

    controller里只需:

    public function addPicture(){

    /* 调用文件上传组件上传文件 */

    $Picture = D('Picture');

    $info = $Picture->upload(

    $_FILES, C('PICTURE_UPLOAD'),

    C('PICTURE_UPLOAD_DRIVER'),

    null  );

    //TODO:上传到远程服务器

    $this->ajaxReturn($info);

    }

    上传成功后会返回图片信息 具体信息可以用dump打印

    onthink的后台是支持批量上传的前台需要修改 我这里由于没考虑兼容性所以 直接采用的是 js formdata 的方式进行上传 优点是你可以自己定制上传按钮

    缺点 进度条之类的要自己写TAT  一个简单的例子:

    <input type="file" id="uploadImageBack" class="uploadPictureInput" accept="image/gif, image/jpeg,image/png"/>

    var fromdata = new FormData();

    function uploadPic(id,name)

    {

    $("#"+id).on("change", function(){

     var files = !!this.files ? this.files : []; 

    return if (!files.length || !window.FileReader) return; 

    if (/^image/.test( files[0].type)){

     var reader = new FileReader();

    reader.readAsDataURL(files[0]);

    fromdata.append(name, files[0]);

    reader.onloadend = function(){

    $("#"+id).parent().parent().find('.upload-img-box').empty();

    $("#"+id).parent().parent().find('.upload-img-box').html( '<div class="upload-pre-item"><span class="delPic" key="'+name+'">X</span><img src="' + this.result + '"/></div>' );

    } }

    });

    }

     

    你可以修改files 为递增的形式 使之可以实现批量上传 (注意低版本浏览器可能不支持该功能

    确保服务器端已经配置好上传的文件夹还有并且给了文件夹权限

    FTP上传: 首先改一下admin下面的config文件增加 

    'PICTURE_UPLOAD_FTP' => array(

    'mimes' => '', //允许上传的文件MiMe类型

    'maxSize' => 2*1024*1024, //上传的文件大小限制 (0-不做限制)

    'exts' => 'jpg,gif,png,jpeg', //允许上传的文件后缀

    'autoSub' => true, //自动子目录保存文件

    'subName' => array('date', 'Ymd'), //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组

    'rootPath' => false, //保存根路径 'savePath' => '', //保存路径

    'saveName' =>array('uniqid', ''), //上传文件命名规则,[0]-函数名,[1]-参数,多个参数使用数组

    'saveExt' => '',//文件保存后缀,空则使用原后缀

    'replace' => true, //存在同名是否覆盖

    'hash' => true, //是否生成hash编码

    'callback' => false, //检测文件是否存在回调函数,如果存在返回文件信息数组

    ),

    'PICTURE_UPLOAD_DRIVER_FTP'=>'Ftp',

    'PICTURE_UPLOAD_CONFIG' => array(

    'host' => '192.168.24.186', //服务器

    'port' => 21, //端口

    'timeout' => 90, //超时时间

    'username' => 'test',

    'password' => 'test',

    ),

    然后controller里改为:

    public function addPicture(){

    /* 返回标准数据 */

    $return = array('status' => 1, 'info' => '上传成功',);

    /* 调用文件上传组件上传文件 */

    $Picture = D('Picture');

    $info = $Picture->upload(

    $_FILES,

    C('PICTURE_UPLOAD_FTP'),

    C('PICTURE_UPLOAD_DRIVER_FTP'),

    C("PICTURE_UPLOAD_CONFIG") );

    //TODO:上传到远程服务器 $book = D('Books');

     /* 返回JSON数据 */

    $this->ajaxReturn($info);

    }

  • 相关阅读:
    判断ImageIcon创建成功
    Node中的explorer views的双击事件
    Oracle数据类型
    Sql三种行转列
    数据库迁移
    并发采集同一站点被封的解决方案
    .net获取版本号的三种方法
    List转DataSet
    Orcale自增长主键
    python学习笔记数字和表达式
  • 原文地址:https://www.cnblogs.com/fengbingzi/p/6020700.html
Copyright © 2011-2022 走看看