这边用bootstrap 3.0的  上传控件做例子

下面是上传控件的一段完整的 js 操作 代码。

<!-- 上传缩略图控件配置 -->
<script>
// 定义这四个全局变量是 为了保存4张图片的uuid 在回调函数中每次保存 都覆盖前一张的名字 实现 用户可以重复添加取最终的结果保存入库
window.Picture1=""; //轮播图1的全局变量
window.Picture2=""; //轮播图2的全局变量
window.Picture3=""; //轮播图3的全局变量
window.Thumbnail=""; //缩略图的全局变量

//一个实时的判断 确保每次缩略图只显式一张
function reuploadThumbnails(){ //重新加载缩略图
var filepreview=document.getElementsByClassName('file-preview-thumbnails');
var fileframs=filepreview[0].getElementsByClassName('file-preview-frame');
var delInitPic=filepreview[0].getElementsByClassName('file-preview-initial');
var a = $('div.file-preview-initial ')
a.hide();
console.log("图片数量"+fileframs.length);
if(fileframs.length>=2){ //一个实时的判断 确保每次缩略图只显式一张
var self=fileframs[0];
var parent = self.parentElement;
// 删除:
var removed = parent.removeChild(self);
console.log(removed === self); // true
}
}

$("#thumbnailPic").fileinput({
language: 'zh', //设置语言
/* uploadUrl: 'uploadFiles/uploadFarmdefPics', */
uploadUrl: 'farmlandLandDef/uploadFarmLandDetailPics?kind=thumbnail',
allowedFileExtensions : ['jpg', 'png','gif'],
overwriteInitial: false,
initialPreviewCount:1,
showCaption:false, //是否显示文件的标题。默认值true
browseClass: "btn btn-primary", //按钮样式
initialPreviewShowDelete: true,
maxFileCount: 1, //最大上传数量
maxFileSize: 400,
maxFilesNum: 1,
initialPreview:"请上农作物生长周期图,支持拖拽图片上传", //配置预览图的界面可以为 img text或者other
slugCallback: function(filename) {
reuploadThumbnails(); //保证缩略图只有一张
return filename.replace('(', '_').replace(']', '_');
}
});
// 注意 有预览功能的上传控件 绑定的 回调事件名字和 无预览功能的不一样
$("#thumbnailPic").on("fileuploaded", function (event, data, previewId, index) {
//console.log(data.files[0]['name']);
//console.log(data);
//var path='http://127.0.0.1:8080/img/uploadFarmdefThumbnailPics/';
var jsonarray = eval("(" +data.jqXHR.responseText+ ")"); //将json字符串转换为json对象
var uuid =jsonarray.uuid;
window.Thumbnail=uuid;
if(window.Thumbnail!=""){
$("#thumbnailImg1").tips({
side:2,
msg:'图片上传成功!',
bg:'#AE81FF',
time:2
});
}
});

$("#thumbnailPic").on("fileuploaderror", function (event, data, previewId, index) {
// alert("fileuploaderror");

var errmsg=$("div.content div.shang_box div#UploadContainer div.file-preview div.file-error-message li").text();

var str=" [object Object]"; //注意有空格
var arr=errmsg.split(":");
var name=arr[arr.length-1];
if(str == name){
errmsg="上传地址路径配置错误!";
}


console.log('msg==='+errmsg);
$("#thumbnailImg1").tips({
side:2,
msg:errmsg,
bg:'#AE81FF',
time:2
});
});

$("#thumbnailPic").on("fileloaded", function (event, data, previewId, index) {
var f = document.getElementById('thumbnailPic').files[0];
var src = window.URL.createObjectURL(f);
document.getElementById('thumbnailImg1').src = src;
});



</script>

js的回调函数 一些例子的更多相关文章

  1. js 回调函数小例子

    js 回调函数小例子 <script> //将函数作为另一个函数的参数 function test1(){ alert("我是test1"); } function t ...

  2. 关于js的回调函数的一点看法

    算了一下又有好几个月没写博客了,最近在忙公司android的项目,所以也就很少抽时间来写些东西了.刚闲下来,我就翻了翻之前看的东西.做了android之后更加感觉到手机端开发的重要性,现在做nativ ...

  3. js的回调函数详解

    本文主要介绍了个人对于javascript中回调函数的理解和使用方法及示例,需要的朋友可以参考下   现在做native App  和Web App是主流,也就是说现在各种基于浏览器的web app框 ...

  4. node.js 中回调函数callback(转载),说的很清楚,看一遍就理解了

    最近在看 express,满眼看去,到处是以函数作为参数的回调函数的使用.如果这个概念理解不了,nodejs.express 的代码就会看得一塌糊涂.比如: 复制代码 代码如下: app.use(fu ...

  5. js的回调函数

    介绍首先从英文介绍开始 A callback is a function that is passed as an argument to another function and is execut ...

  6. Node js 安装+回调函数+事件

    /* 从网站 https://nodejs.org/zh-cn/ 下载 这里用的 9.4.0 版本 下载完安装 安装目录是 D:\ApacheServer\node 一路默认安装 安装后打开cmd命令 ...

  7. js中回调函数(callback)的一些理解

    前言 我个人在学习Node.js相关知识时遇到了回调函数这个概念,虽然之前已经在c,c++等编程语言中用到过它,但还一直未对其机制有深入了解,这次就来好好谈一下它. 概念理解 百度对它的解释是回调函数 ...

  8. 转:Delphi 回调函数及例子

    http://anony3721.blog.163.com/blog/static/5119742010866050589/ { http://anony3721.blog.163.com/blog/ ...

  9. 没办法,还是要补一下js,回调函数(转载)

    <html> <head> <title>回调函数(callback)</title> <script language="javasc ...

随机推荐

  1. Java文件写入,换行

    import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOExce ...

  2. MySQL 常用函数和语句笔记

    CONCAT()函数 CONCAT()函数代表着字符串的链接,例子有 SELECT COUNT(1) FROM ums_commodity WHERE 1 = 1 and deleted=0 and ...

  3. linux系统下sendmail的搭建

    学习鸟哥linux私房菜所得 sendmail 可以使用rpm -qa |grep sendmail来查看一下是否已安装sendmail-cf和sendmail 如果没有安装可用yum -y inst ...

  4. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界

    本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...

  5. 基于MATLAB求解矩阵的正交补矩阵

    1.背景知识:LCMV波束形成器的维纳滤波器结构 2.MATLAB code: [m,n]=size(C); [Q,R]=qr(C); Ca=Q(:,n+1:m);

  6. MyEclispe发布web项目-遁地龙卷风

    (-1)写在前面 我用的是MyEclipse8.5. 还记得以前帮助一个女同学解决问题的时候,特意情调了要先启动服务在发布项目,其实单独的时候都是知道的,总和起来后就容易片面的给出结论.因为不会发生问 ...

  7. 2015-9月份,Android开发,面试题总结,主要记录没有答出来的问题

    9月13日,秒针面试(跪) 1.使用HTML5写Android 与本地应用比较 9月21日,百度一面(跪)1.Android的整个启动过程,什么阶段启动了什么进程,或者服务 2.Android系统框架 ...

  8. ICMP的应用--Traceroute

    Traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具.前面说到,尽管ping工具也可以进行侦测,但是,因为ip头的限制,ping不能完全的记录下所经过的路由器.所以 ...

  9. 常用的windows cmd 的使用

    cd/:返回根目录 cd 文件名:进入某文件 md 文件名:新建文件 dir:显示当前文件夹内的文件目录 del:删除文件 rd:删除空目录(目录中不能有子目录和文件) deltree:删除目录并删除 ...

  10. ffmpeg-20160828-bin.7z

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 5 屏幕横向放大 20 像素 6 屏幕横向缩小 20 像素 S 下一帧 [ -2秒 ] +2 ...