java 批量上传图片插件_java多文件上传plupload控件实现多图片上传(一)

使用的是plupload-2.1.2 控件。网上资源挺多的,很好下载。

plupload 官方地址 : http://www.plupload.com/

plupload 示例: http://www.plupload.com/examples/

plupload Github:  https://github.com/moxiecode/plupload

整体框架用的是easyui + springMVC。

1、前台jsp页面代码如下:

//先导入plupload的js

上传图片:

//三个操作按钮

选择图片

上传

取消上传

//如果控件加载出现问题,这里会出现提示。

//控件加载正确的后,这里用来存放上传的图片队列。

您的浏览器未安装 Flash, Silverlight, Gears, BrowserPlus 或者支持 HTML5 .

//控件初始化配置

var uploader = new plupload.Uploader({

runtimes : 'html5,flash,silverlight,html4',

//浏览文件按钮

browse_button : 'pickfiles',

container: document.getElementById('container'),

//请求路径

url : '/XXController/savePics.action',

flash_swf_url : '/js-plug/plupload/js/Moxie.swf',

silverlight_xap_url : '/js-plug/plupload/js/Moxie.xap',

//多部分上传

multipart :true ,

// 上传分块每块的大小,这个值小于服务器最大上传限制的值即可。

chunk_size: '9mb',

//可以使用该参数来限制上传文件的类型

filters : {

max_file_size : '10mb',

mime_types: [//只允许上传图片

{

title : "Image files",

extensions : "jpg,gif,png,bmp"}

],

//不允许选取重复文件

prevent_duplicates : true

},

//当Plupload初始化完成后触发

init: {

PostInit: function() {

document.getElementById('filelist').innerHTML ='';

document.getElementById('uploadfiles').onclick = function() {

//队列不为空给出上传,否则给出错误提示

if (uploader.files.length > 0) {

uploader.start();

return true;

} else {

alert('至少要选择一张图片!');

return false;

}

};

//取消上传

document.getElementById('cancel_uploadfiles').onclick = function() { document.getElementById('filelist').innerHTML = '';

//获取对列长度

var CONSTLENGTH = uploader.files.length ;

//清空上传文件队列

for(var i=0; i < CONSTLENGTH; i++)

{

uploader.removeFile(uploader.files[0].id);

}

};

},

//上传时的附加参数,以键/值对的形式传入,

multipart_params: {

'参数A': '',

'参数B': ''

},

//设置你的参数

BeforeUpload : function(up , file){

//重点在这里,上传的时候自定义参数信息

uploader.setOption("multipart_params",{

"参数A" : 参数A的值,

"参数B" : 参数B的值

});

},

//文件添加后,将文件名称和文件大小写入上传队列

FilesAdded: function(up, files) {

plupload.each(files, function(file) {

document.getElementById('filelist').innerHTML += '

' +

file.name + ' (' + plupload.formatSize(file.size) + ')

';

});

},

//文件上传过程中,显示百分比

UploadProgress: function(up, file) {

document.getElementById(file.id).getElementsByTagName('b')

[0].innerHTML = '' + file.percent + "%";

},

//文件上传完毕后,刷新页面,同时清空上传队列

UploadComplete: function(up, files) {

document.getElementById('filelist').innerHTML = "";

//刷新页面

//获取对列长度

var CONSTLENGTH = files.length ;

//清空上传文件对列

for(var i=0; i < CONSTLENGTH; i++)

{

uploader.removeFile(files[0].id);

}

}

}

});

//初始化控件

uploader.init();

注意:我开始写的时候,清空上传队列那里不是自己写的for循环手动清空的,用的是

UploadComplete: function(up, files) {

plupload.each(files, function(file) {

uploader.removeFile(file.id):从file中移除某个文件

}

}

但是使用过程中会报错,说file is undefined,debug调试后发现,用这种方式操作时,队列中的最后一个文件无法移除,不知道为什么,就自己改成手动的了。

先写到这里吧,上面的代码,有一部分是自己参考的,因为我写的时候也是在网上找的资料,但发现资料不是很全,所有就打算自己写一个,方便大家有需求的查看。以后还会写PluploadUtil 和 Plupload PO类,以及后台的action。给大家一个完整的例子!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java servlet_Java Servlet的前100个问题

java servlet1&#xff09;是“ servlets”目录还是“ servlet”目录&#xff1f; 回答&#xff1a; 对于Java Web Server&#xff1a; 在文件系统上&#xff0c;它是“ servlet” c&#xff1a;\ JavaWebServer1.1 \ servlets \ DateServlet.class 在URL路径中&#xff0c;…

精通java ee项目案例_精通JavaEE项目案例

第1章 Java EE开发入门 11.1 基本概念 11.1.1 Java EE API 11.1.2 MVC模型 21.1.3 JSP讨论 31.1.4 Servlet讨论 41.1.5 Model1和Model2 51.2 Eclipse 51.2.1 Eclipse的平台简介 61.2.2 Eclipse的体系结构 61.3 Struts 71.3.1 认识Struts 71.3.2 Strut…

java调用php session_php读取memcahed java session

情景&#xff1a;1&#xff1a;现在有两个系统&#xff0c;一个是Java做的系统&#xff0c;一个是PHP的系统&#xff0c;现在要把两个系统弄成一个单点登录。2&#xff1a;两个系统两个库&#xff0c;两个库的表结构完全不同&#xff0c;现在要解决的就是session共享问题和用户…

[MEGA DEAL]完整的Java编程训练营(94%折扣)

成为Java Master的10门课程&#xff08;83.5小时&#xff09;&#xff1a;使用JavaFX的设计UI&#xff0c;利用设计模式&#xff0c;Master Multithreading等 嘿&#xff0c;怪胎&#xff0c; 本周&#xff0c;在我们的JCG Deals商店中 &#xff0c;我们提供了另一个超值优惠…

怎么把java程序放进php_如何在php脚本中执行Java程序?

I have been struggling with this for awhile trying all sorts of options withno results – the file is never created(the file is created with an absolutepath so it’s not being created and Ijust can’t find the file). Does anyonehave any ideas?我认为问题是…

java重排序_Java内存模型FAQ(四)重排序意味着什么?

译者&#xff1a;Alex在很多情况下&#xff0c;访问一个程序变量(对象实例字段&#xff0c;类静态字段和数组元素)可能会使用不同的顺序执行&#xff0c;而不是程序语义所指定的顺序执行。编译器能够自由的以优化的名义去改变指令顺序。在特定的环境下&#xff0c;处理器可能会…

javafx响应式布局_JavaFX的响应式设计

javafx响应式布局使用CSS技术&#xff0c;为您的网站创建响应式设计相对容易。 根据屏幕的大小&#xff0c;您可以使用其他CSS文件和布局。 在JavaFX中&#xff0c;乍一看似乎有些困难&#xff0c;因为CSS仅负责样式&#xff0c;而不负责布局。 但是&#xff0c;为各个屏幕尺寸…

pojo java_什么是POJO,JavaBean?

什么是POJO&#xff0c;JavaBean&#xff1f;总结&#xff1a;POJO&#xff1a;一个简单的Java类&#xff0c;这个类没有实现/继承任何特殊的java接口或者类&#xff0c;不遵循任何主要java模型&#xff0c;约定或者框架的java对象。在理想情况下&#xff0c;POJO不应该有注解。…

JVM体系结构101:了解您的虚拟机

Java虚拟机&#xff08;JVM&#xff09;架构和Java字节码101的初学者速成班 Java应用程序无处不在&#xff0c;它们在我们的手机&#xff0c;平板电脑和计算机上。 在许多编程语言中&#xff0c;这意味着要多次编译代码才能使其在不同的OS上运行。 对于作为开发人员的我们来说…

flask对mysql数据库增删改查_Flask学习(三) - Flask-SQLAlchemy对数据库增删改查

Flask-SQLAlchemy对数据库增删改查安装pip install flask-sqlalchemy具体不多说了&#xff0c;主要是对数据库进行简单的增删改查&#xff0c;上代码&#xff0c;看注释app.route(/)def index():#增加article1 Article(titletest1, contentthe first test)db.session.add(arti…

逸出 java_【java】知识系谱-基础篇-线程-发布、逸出

java并发编程实战的解释&#xff0c;不够详细&#xff0c;尤其this引用逸出让人理解有些费解&#xff0c;java并发编程实战里面的内容就直接拷贝过来发布&#xff1a;使对象能够在当前作用域之外的代码中使用逸出&#xff1a;当某个不该被发布的对象被发布时&#xff0c;这种情…

lambda java_Java Lambdas简介

lambda javaJava 8的主题是lambdas。 我已经注意到&#xff0c;对于许多Java程序员来说&#xff0c;lambda都是非常难的材料。 因此&#xff0c;让我们尝试对它们有一个基本的了解。 首先&#xff0c;lambda到底是什么&#xff1f; Lambda是一个匿名函数&#xff0c;与常规函数…

java mousepress_Java线程原语弃用

为什么是线程停止不赞成&#xff1f;因为它本质上是不安全的。停止线程会使其解锁其锁定的所有监视器。(当ThreadDeath异常在堆栈上传播时&#xff0c;监视器将被解锁。)如果以前受这些监视器保护的任何对象处于不一致状态&#xff0c;其他线程现在可能会以不一致的状态查看这些…

带有Jersey的JAX-RS教程,用于RESTful Web服务

在当今世界&#xff0c;数据扮演着非常重要的角色。 如此众多的应用程序将各种类型的数据用于不同的操作&#xff0c;所以最重要的方面是应用程序之间的通信。 当应用程序可以通信时&#xff0c;它们之间的数据共享变得容易。 就像在亚洲运行的应用程序向在欧洲运行的应用程序…

java swing 打开文件_java swing实现打开Excel文件并进行处理

这里选择Excel文件是业务需要&#xff0c;话不多说1、引入对Excel处理的相关依赖org.apache.poipoi3.16org.apache.poipoi-ooxml3.162、进行swing的相关布局代码&#xff1a;package com.mozarta;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.xssf.usermodel…

@ParameterizedTest在@CvsSource中具有空值

在JUnit 4中编写参数化测试非常麻烦。 JUnit 5对框架进行了一些有用的改进&#xff0c;并且使用不同的参数运行相同的测试比以前的版本要简单得多。 但是&#xff0c;在这样的参数中传递空值存在一个小问题。 在这篇文章中&#xff0c;我将向您展示如何在JUnit 5中的Parametrz…

java正则断言_Java正则表达断言篇

正则表达式的先行断言和后行断言一共有4种形式&#xff1a;(?pattern) 零宽正向先行断言(zero-width positive lookahead assertion)(?!pattern) 零宽负向先行断言(zero-width negative lookahead assertion)(?<pattern) 零宽正向后行断言(zero-width positive lookbehin…

java的对象对象映射_Java对象到对象映射器

java的对象对象映射我在该项目上使用了Dozer一段时间。 但是&#xff0c;最近我遇到了一个非常有趣的错误&#xff0c;这促使我环顾四周&#xff0c;并尝试使用其他“对象到对象”映射器。 这是我找到的工具列表&#xff1a; 推土机&#xff1a;推土机是Java Bean到Java Bea…

java parallelstream_关于Java8 parallelStream并发安全的深入讲解

背景Java8的stream接口极大地减少了for循环写法的复杂性&#xff0c;stream提供了map/reduce/collect等一系列聚合接口&#xff0c;还支持并发操作&#xff1a;parallelStream。在爬虫开发过程中&#xff0c;经常会遇到遍历一个很大的集合做重复的操作&#xff0c;这时候如果使…

Jakarta EE,EE4J和Java EE之间的关系

Jakarta EE的名称已经存在了一个多月&#xff0c;即使Mike Milinkovich在他的博客文章“名称是……”中很好地解释了名称和概念&#xff0c;但对于它们之间的关系仍然有些困惑&#xff0c;我也提出了疑问只要有话题就可以围绕它。 我试图在这里总结一下。 希望能帮助到你&#…