1.找到上传图片的模板页面 webuploader.html

在上传文件标签后面 添加

<li class=""><a href="#explorer" data-toggle="tab" class="history">文件管理</a></li>

下边便签对应的展示容器中加上

<div class="tab-pane" id="explorer">
<input type="hidden" id="history_path" value="">
<input type="hidden" id="history_view" value="">
<div class="files-wrapper" style="height:270px; overflow-y:scroll;">
<ul id="files-container-history">
<div class="k" style="width:100%;height:10px;clear:both;"></div>
</ul>
</div>
</div>

图片选择样式稍微美化一下

#files-container-history{
list-style:none;
height:270px;
overflow:scorll;
}
.uploaded{
float:left;
width:200px;
height:100px;
padding:5px;
margin-top:10px;
margin-left:10px;
border:1px solid #ccc;
overflow:hidden;
}
.selected{
border:1px solid #00a1ff;
}
.uploaded img{width:100%;}
.filename{
position:relative; width:100%; height:20px;
margin-top:-20px; color:#fff; background-color:rgba(1,1,1,0.5);
font-size:14px;}

添加异步取回已上传文件列表功能

//拉取图片
var listEnd = false, isLoadingData = false, listIndex = 0, listSize = 10;
$('.history').on('click',function(){
if($('#explorer ul li').length == 0){
get_list();
}
});
function get_list(){
if(!listEnd && !isLoadingData) {
isLoadingData = true;
var url = "/user/admin_asset/listimage";
$.ajax({
type: "GET",
url: url,
dataType: "json",
timeout : 10000,
data: {
page: Math.ceil(listIndex/listSize),
},
success: function (json) {
try {
if (json.state == 'SUCCESS') {
show_img(json.list);
listIndex += parseInt(json.list.length);
if(listIndex >= json.total) {
listEnd = true;
}
isLoadingData = false;
}
} catch (e) {
if(json.indexOf('ue_separate_ue') != -1) {
var list = json.split(r.responseText);
listIndex = parseInt(list.length);
listEnd = true;
isLoadingData = false;
}
}
},
error: function () {
isLoadingData = false;
}
});
}
}
//显示图片
function show_img(list){
var str = '';
for (i = 0; i < list.length; i++) {
if(list[i] && list[i].file_path) {
str = str + '<li class="uploaded" data-path="' + list[i].file_path + '" data-view="/upload/' + list[i].file_path + '">'
+ '<div><img src="/upload/' + list[i].file_path + '">'
+ '<div class="filename">' + list[i].filename + '</div></div></li>'; }
}
$('#explorer ul .k').before(str);
}
//滚动
$('.files-wrapper').on('scroll', function(e){
var scrollTop = $(this).scrollTop() + $(this).outerHeight(true);
var ktop = $(this).find('.k').offset().top;
if(scrollTop >= ktop){
get_list();
}
}); //选择
$('#files-container-history').on('click','li',function(){
$(this).addClass('selected').siblings().removeClass('selected');
$('#history_path').val($(this).data('path'));
$('#history_view').val($(this).data('view'));
});

滚动加载更多,展示都有了,

修改文件选择后的回调处理

function get_selected_files() {

        var tab = $(".tab-content > div.active").attr('id');

        var files = [];

        var idPre = 'id' + new Date().getTime();

        if (tab == 'wrapper') {
var number = jQuery(".filelist li").size();
for (var i = 0; i < number; i++) { var file = new Object();
var $file = jQuery(".filelist li").eq(i);
file.id = idPre + i;
file.filepath = $file.data("filepath");
file.preview_url = $file.data("preview_url");//httpUrl+file.filepath;
file.url = $file.data("url");
file.name = $file.data("name");
if (file.url == undefined) {
continue;
} else {
files.push(file);
} }
}else if(tab == 'explorer'){
if($('#history_path').val() == ''){
alert('请选择图片!');
return false;
}
var file = new Object();
file.id = "historyfile"+new Date().getTime();
file.filepath = $('#history_path').val();
file.preview_url = $('#history_view').val();
file.url = $('#history_path').val();
file.name = "";
files.push(file);
}else{
var file = new Object();
file.id = idPre + '1';
file.filepath = jQuery("#info").val();
file.preview_url = file.filepath;
file.url = file.filepath;
file.name = "";//jQuery(".filelist li .title").eq(i).html();
files.push(file);
}
return files;
}

2.后端添加获取listimage的功能

取个巧在user/controller下的资源管理中添加列出已上传图片

public function listimage()
{
$page = $this->request->param('page');
$join = [
['__USER__ u', 'a.user_id = u.id']
];
$total = Db::name('asset')->field('a.id,a.file_path,a.filename,a.create_time')
->alias('a')->join($join)
->count();
$result = Db::name('asset')->field('a.id,a.file_path,a.filename,a.create_time')
->alias('a')->join($join)
->order('create_time', 'DESC')
->paginate(10);
$result = array(
"state" => "SUCCESS",
"list" => $result->items(),
"total" => $total
);
die(json_encode($result));
}

thinkCMF图片上传选择已上传图片的更多相关文章

  1. 图片上传和显示——上传图片——上传文件)==ZJ

    http://www.cnblogs.com/yc-755909659/archive/2013/04/17/3026409.html aspx上传 http://www.cnblogs.com/mq ...

  2. Asp.net中FileUpload控件实现图片上传并带预览显示

    单一图片上传——“选择”+“上传”,.NET默认模式: 1.实现原理:     采用FileUpload控件默认的使用方式,先由“选择”按钮选择图片,然后单击“上传”按钮完成上传,并可在“上传”按钮的 ...

  3. 微信JS-SDK接口 + FLASK实现图片上传

    最近在做一个项目从全球各地采集图片,考虑采用微信JS-SDK来简化开发.图片会首先上传到微信的服务器,返回一个id,然后根据这个id去微信服务器获取图片.微信提供可选择的压缩图片功能.图片首先上传到微 ...

  4. base64格式的图片上传阿里云

    base64格式的图片上传阿里云 上传图片的时候,除了普通的图片上传,还有一张图片信息是以base64格式发送到后台的. 后台接受base64格式的图片,上传至阿里云代码:(主要是将base64转化成 ...

  5. .NET WebAPI 实现图片上传(包括附带参数上传图片)

    博主的项目,客户端是APP,考虑到以后也可能会应用到微信端.网站等,图片上传方法就需要兼容多端,并且以目前的设计,不允许非登录用户上传图片,就得在上传时解决附带参数上传图片的问题. 先来看看后台方法( ...

  6. kindeditor修改图片上传路径-使用webapi上传图片到图片服务器

    kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 在这里我着重介绍一些使用kindeditor修改图片上传路径并通过webapi上传图片到图片服务器的方案. 因为我使用的 ...

  7. kindeditor扩展粘贴图片功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...

  8. kindeditor扩展粘贴截图功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...

  9. HTML5 Plus 拍照或者相册选择图片上传

    HBuilder+HTML5 Plus+MUI实现拍照或者相册选择图片上传,利用HTML5 Plus的Camera.Gallery.IO.Storage和Uploader来实现手机APP拍照或者从相册 ...

随机推荐

  1. windows下java项目打包、启动批处理 .bat文件

    maven打包,脚本内容: @echo off echo 正在设置临时环境变量 set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45 set MAVEN_HO ...

  2. 一百零五、SAP中ALV事件之十七,让ALV表格修改后保存到数据库

    一.我们来到代码界面设置保存按钮的代码 二.i_grid_settings这个属性用来编辑单元格之后,返回给程序编辑后的值 三.我们双击点  'REUSE_ALV_GRID_DISPLAY',来到定义 ...

  3. XTU 1205 Range

    还是五月湘潭赛的题目,当时就是因为我坑...连个银牌都没拿到,擦. 这个题目枚举区间是不可能的,明显是要考虑每个数对全局的影响,即找到每个数最左和最右能满足是最大的位置 以及 最小的时候,相乘即为该数 ...

  4. ACM-Special Array

    题目描述:Special array   输入n和m(20>=m>=n>0)求出所有满足以下方程的正整数数列 i1,i2,...,in,使i1+i2+...+in=m,且i1> ...

  5. 前端第四篇---前端基础之jQuery

    前端第四篇---前端基础之jQuery 一.jQuery介绍 二.jQuery对象 三.jQuery基础语法 四.事件 五.动画效果 六.补充each 一.jQuery简介 1.jQuery介绍 jQ ...

  6. CGridCtrl添加右键菜单

    头文件下添加: afx_msg void OnMergeCell(); afx_msg void OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/); 添加 ...

  7. zabbix监控oracle之orabbix安装

    zabbix服务器安装配置 zabbixserver中安装该软件 mkdir /opt/orabbix cp orabbix-1.2.3.zip /opt/orabbix cd /opt/orabbi ...

  8. linux中redis伪主从搭建

    1.解压redis.tgz到usr/local/redis下 2.在redis/下执行 make 3.在redis/src/下执行 make install PREFIX=/usr/local/red ...

  9. PAT Advanced 1143 Lowest Common Ancestor (30) [二叉查找树 LCA]

    题目 The lowest common ancestor (LCA) of two nodes U and V in a tree is the deepest node that has both ...

  10. Sequence Models Week 3 Neural Machine Translation

    Neural Machine Translation Welcome to your first programming assignment for this week! You will buil ...