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);
}
onethink上传图片(资源)和预览的更多相关文章
- HTML5 CSS3 经典案例:无插件拖拽上传图片 (支持预览与批量) (二)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/31513065 上一篇已经实现了这个项目的整体的HTML和CSS: HTML5 C ...
- OSS上传图片无法在线预览的解决方案
OSS上传图片无法在线预览的解决方案 最近在做的项目涉及到商品详情,由于前端用的flutter框架并且该详情为富文本,dart语言关于富文本的组件不是非常友好,当富文本中的图片无法在浏览器中直接预览的 ...
- (干货)微信小程序之上传图片和图片预览
这几天一直负责做微信小程序这一块,也可以说是边做边学习吧,把自己做的微信小程序的一些功能分享出来,与大家探讨一下,相互学习相互进步. 先看下效果图 只写了一下效果样式的话希望大家不要太在意,下面马路杀 ...
- 微信小程序之上传图片和图片预览
这几天一直负责做微信小程序这一块,也可以说是边做边学习吧,把自己做的微信小程序的一些功能分享出来,与大家探讨一下,相互学习相互进步. 先看下效果图 只写了一下效果样式的话希望大家不要太在意,下面马路杀 ...
- 基于jquery实现的上传图片及图片预览效果代码
<!DOCTYPE html> <html> <head> <title>HTML5上传图片预览</title> <meta http ...
- javascript和HTML5上传图片之前实现预览效果
一:FileList对象与file对象 FileList对象表示用户选择的文件列表,在HTML4中,file控件内只允许放置一个文件,但是到了HTML5中,通过添加multiple属性,file控件内 ...
- 利用FileReader实现上传图片前本地预览
引子 平时做图片上传预览时如果没有特殊的要求就直接先把图片传到后台去,成功之后拿到URL再渲染到页面上,这样做在图片比较小的时候没什么问题,大一点的话就会比较慢才能看到预览了,而且还产生了垃圾文件,所 ...
- JS 上传图片时实现预览
网页中一张图片可以这样显示: <img src="http://www.letuknowit.com/images/wg.png"/>也可以这样显示:<img s ...
- 模拟微信上传图片(带预览,支持预览gif)
一.Html <style type="text/css"> #previewDiv{width:50px;height:50px;overflow:hidden;po ...
- JS上传图片本地实时预览缩略图
HTML 代码如下 <body> <table width="100%" border="0" cellspacing="0&quo ...
随机推荐
- oracle删除用户及表空间,导入用户和数据
drop user xxx cascade; drop tablespace xxx including contents and datafiles; create tablespace xxx d ...
- 作业三:WC项目
WC一个简单的文件检测系统 用c语言实现 不多说 上代码 #include<stdio.h> #include<stdlib.h> #include <io.h> ...
- js内存泄露的几种情况
想解决内存泄露问题,必须知道什么是内存泄露,什么情况下出现内存泄露,才能在遇到问题时,逐个排除.这里只讨论那些不经意间的内存泄露. 一.什么是内存泄露 内存泄露是指一块被分配的内存既不能使用,又不能回 ...
- OpenGL角轴
概述 轴旋转 角轴 概述 OpenGL旋转矩阵 旋转角度直接影响OpenGL GL_MODELVIEW矩阵的前三列,准确地说是向左.向上与向前三轴元素.例如,如果一沿X轴的单位向量(1,0,0)与任一 ...
- MVC视图请求流程视图
/* *视图请求流程 *当接受到home/index请求时 *先去找viewstart.cshtml视图,再去加载index.cshtml视图 ...
- 微信上传文章素材—ASP.NET MVC从View层传数据到Controller层
View层: $('#btnNews').click(function() { if (!confirm('确定要提交吗?')) { return; } var frontViewData = []; ...
- 【深度学习】之Caffe的solver文件配置(转载自csdn)
原文: http://blog.csdn.net/czp0322/article/details/52161759 今天在做FCN实验的时候,发现solver.prototxt文件一直用的都是mode ...
- MySQL服务 - 客户端工具mysql及mysqladmin使用介绍
mysql客户端: mysql工具是MySQL官方提供的连接工具,用户可以通过mysql连接到mysqld上进行一系列的SQL操作.mysql工具有两种模式:交互模式和命令行模式.交互模式指令需要连接 ...
- Building GCC 4.1.2 in CentOS 7 for Maya API development
Following the official guid: http://help.autodesk.com/cloudhelp/2015/ENU/Maya-SDK/files/Setting_up_y ...
- 通过开户银行账号查询客商名称 sql
select * from bd_cubasdoc where pk_cubasdoc in ( ') 查询空客商客户银行的单位名称 select b.custcode,b.custname, d.b ...