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. 第一个flink application

    导入maven依赖 需要注意的是,如果使用scala写程序,导入的依赖跟java是不一样的 Maven Dependencies You can add the following dependenc ...

  2. jqGrid 添加 合计行 footDate

    jQuery(table_id).jqGrid({ url : url,//组件创建完成之后请求数据的url datatype : "json",//请求数据返回的类型.可选jso ...

  3. Elasticsearch 过滤

    章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...

  4. Docker Java 例子

    版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...

  5. hdu 1277 全文检索 (字典树应用)

    全文检索 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  6. javascript 对象只读

    var person = {}; Object.defineProperty(person, "name", { writable: false, value: "nic ...

  7. POJ - 2253 Frogger(最短路Dijkstra or flod)

    题意:要从起点的石头跳到终点的石头,设The frog distance为从起点到终点的某一路径中两点间距离的最大值,问在从起点到终点的所有路径中The frog distance的最小值为多少. 分 ...

  8. 关于数据库text字段

    问题描述: maven项目中,使用MBG代码生成器自动生成的实体类对象时,当数据库中表的字段有 text 类型时,对应到java类中是String类型的,在前端页面通过ajax获取到 json 格式的 ...

  9. POJ 2586:Y2K Accounting Bug

    Y2K Accounting Bug Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11297   Accepted: 56 ...

  10. 面试题(6)之 leetcode-001

    1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这 ...