`
seyaa
  • 浏览: 55608 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jquery+alanx+fileupload上传组件

阅读更多
     最近闲着没事就找了些上传的东西,折腾下。折腾完SWFUpload就折腾下Alanx那个上传的东西,原有的是封装在一个jar中,使用标签,我觉得有点不爽,就给折腾了个jquery插件:

具体使用步骤:

一:引入必须的js文件和css文件:
<!--jquery1.4核心库-->
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<!--alanx核心库-->
<script type="text/javascript"	src="core/swfobject.js"></script>
<!--自定义jquery插件vinAlanx的jquery插件js-->
<script type="text/javascript"	src="vinAlanx-1.0.js"></script>



二:在body中添加组件显示目标
<div id="vinEdit"></div>


三:在jqeury中初始化插件
<script type="text/javascript">
	$(function() {
		$("#vinEdit").vinAlanx({
            width : 500,
			heigth : 40,
			uploadURL:'/AlanXUploadServlet',
			expressInstallURL:'core/expressInstall.swf',
			alanxSwfURL:'core/AlanX.swf',
			extensionName:'*.*',
			extensionDisp:"AlanX上传组件",
			maxFileN:100,
			maxFileSize:1048576000,
			maxAllFileSize:10485760000,
			waitForProgress:false,
			errorContinue:true,
			showLogoTxt:false
		});
	});
</script>



参数说明:


width : 500,	插件显示区域宽度
heigth : 100,	插件显示区域高度
uploadURL:'/ AlanXUploadServlet ',	处理上传请求的服务器端脚本URL
expressInstallURL:" core/expressInstall.swf ",	expressInstall.swf的文件地址
alanxSwfURL:" core/AlanX.swf ",	AlanX.swf的文件地址
extensionName:"*.*",	允许上传的文件类型;如".xls;.doc";
extensionDisp:" AlanX上传组件",		显示在扩展名前
maxFileN:100,	允许上传的最大文件个数;
maxFileSize:104857600,	允许上传的最大文件大小(byte);(10M)
maxAllFileSize:1048576000,	允许上传的总文件最大值(byte);(100M)
waitForProgress:false,	上一个文件上传完毕后,是否马上开始上传下一个文件(默认false),还是等待业务逻辑处理完之后(比如可能需要解析文件等业务过程),再开始下一个文件的上传(true)
errorContinue:true,	上传某一个文件出错,是否继续上传其他文件默认为true
showLogoTxt:false,	显示AlanX的logo及链接,默认为显示,当鼠标在组件右边悬停时,logo会显示,点击可以看到官方的帮助文档


有了上传插件,那肯定是要有处理上传的类的,举例使用servlet+fileupload:


package cn.alanx.upload.sample;

import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class AlanXUploadServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static final String ALANX_UPLOAD_FOLDER = "AlanX_Upload_Folder";
	public  static final String ALANX_UPLOAD_SERVLET = "AlanXUploadServlet";
	public AlanXUploadServlet() {
		super();
	}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	@SuppressWarnings("unchecked")
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {

		try {
			request.setCharacterEncoding("UTF-8");
		} catch (UnsupportedEncodingException e1) {
			e1.printStackTrace();
		}
		//磁盘文件条目工厂
		DiskFileItemFactory factory = new DiskFileItemFactory();

		// 文件上传如果文件小,上传组件可以将文件存放在内存中,如果过大时会放在临时目录里面,之后再通过IO流操作
		//获取目录真实路径   / 代表 WebRoot目录下面

		String path = request.getSession().getServletContext().getRealPath(
				"/"+ALANX_UPLOAD_FOLDER);
		System.out.println(path);
		File pathFile = new File(path);
		if (!pathFile.exists()) {
			pathFile.mkdir();
		}
		//设置临时目录
		factory.setRepository(new File(path));
		//设置上传文件大小

		factory.setSizeThreshold(1024 * 1024);
		//创建一个ServletFileUpload 实例 

		ServletFileUpload sfu = new ServletFileUpload(factory);
		try {
			//解析请求,取得FileItem 列表
			List<FileItem> lis = sfu.parseRequest(request);
			//循环遍历
			for (FileItem item : lis) {
				//判断是否是简单的表单字段
				if (item.isFormField()) {
					String name = item.getFieldName();
					String value = item.getString("UTF-8");
					request.setAttribute(name, value);
				} else {
					//取得字段名
					String name = item.getFieldName();
					//       取得文件路径名
					String value = item.getName();
					System.out.println(value);
					//为了屏蔽各个浏览器提供的路径不同异常
					int start = value.lastIndexOf("\\");
					//取得文件名
					String fileName = value.substring(start + 1);
					request.setAttribute(name, fileName);
					item.write(new File(path, fileName)); //这句代码与下面高亮显示的代表功能相同
				}
			}
		} catch (FileUploadException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		try {
			response.getWriter().print("success");
			response.getWriter().close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}



写好了处理类就是配置了:
web.xml中添加下面配置:
	<servlet>
		<description>AlanX.cn Batch Upload Sample</description>
		<display-name>AlanXUploadServlet</display-name>
		<servlet-name>AlanXUploadServlet</servlet-name>
		<servlet-class>cn.alanx.upload.sample.AlanXUploadServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>AlanXUploadServlet</servlet-name>
		<url-pattern>/AlanXUploadServlet</url-pattern>
	</servlet-mapping>



效果图预览


2
1
分享到:
评论

相关推荐

    jquery+alanx+fileupload 多文件上传组件

    在IT行业中,多文件上传组件是网页应用中不可或缺的一部分,特别是在大数据时代,用户常常需要上传大量...`jQuery+Alanx+FileUpload` 组合提供了一套强大且灵活的工具,使得在Web应用中实现多文件上传变得轻松简单。

    PHP多文件上传插件,PHP+jQuery+Ajax多图片上传

    2. **jQuery插件**:例如`jQuery.form.js`或`jQuery.fileupload.js`,它们提供了方便的API来处理多文件上传。这些插件可以监听文件选择事件,创建FormData对象,将文件数据附加到对象中,并通过Ajax发送到服务器。 ...

    使用jQuery+SWFUpload+Commons-FileUpload实现带进度条的上传

    总之,结合jQuery、SWFUpload和Apache Commons FileUpload,我们可以创建一个功能完备且用户体验良好的文件上传系统,包括多文件选择、进度反馈以及安全的服务器端处理。这个过程涉及到前端和后端的协作,需要对...

    jquery+struts2实现文件上传

    在本文中,我们将深入探讨如何使用jQuery和Struts2框架实现文件上传功能。这是一个常见的需求,在Web应用中,用户可能需要上传图片、文档等文件。jQuery是一个轻量级的JavaScript库,提供了丰富的交互效果和API,而...

    easyUi+jquery+common-file-upload +struts2带进度条的文件上传DEMO

    基于eclipse + easyUi1.2.6+common-fileupload + struts2实现带进度条的文件上传DEMO,具体效果跟思路可见我的博客:http://blog.csdn.net/jun55xiu/article/details/22042279

    jQuery Uploadify + Apache Fileupload异步上传文件示例

    通过以上步骤,你就可以创建一个使用jQuery Uploadify和Apache Fileupload的文件上传系统。这个系统能够优雅地处理文件上传,提供良好的用户交互体验,并确保服务器端安全有效地处理上传文件。记住,始终关注性能和...

    Java项目:嘟嘟蛋糕商城系统(java+JDBC+Servlet+HTML+Ajax+mysql+Fileupload)

    一、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) ...Jdbc+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload等等

    js+jquery+java实现的头像上传和裁剪

    在本文中,我们将深入探讨如何使用JavaScript(JS)、jQuery和Java技术实现一个功能完善的头像上传和裁剪功能。这个功能通常应用于用户个人资料设置、社交媒体应用或网站中,允许用户选择并调整他们的个人头像。 ...

    plupload+jquery+java多文件上传下载功能

    标题中的“plupload+jquery+java多文件上传下载功能”是指使用plupload插件结合jQuery和Java技术,实现一个能够支持多文件上传和下载(包括单个文件直接下载及多个文件打包下载)的功能。这个功能通常应用于需要大量...

    struts2+jquery+ajax文件异步上传

    Struts2、jQuery和Ajax是Web开发中的三个关键组件,它们共同构成了文件异步上传的基础框架。这个项目是在MyEclipse环境下实现的一个简单的文件上传功能,让我们深入了解一下这些技术及其在文件上传中的应用。 首先...

    jquery+swfupload+servlet_多文件上传,支持ctrl和shift多选择的功能

    SWFUpload是一个基于Flash的开源文件上传组件,它可以提供高级的文件上传功能,如多文件上传、进度条显示、预览等。尽管Flash已经不再被广泛支持,但在Flash Player仍被广泛安装的年代,SWFUpload是实现跨浏览器多...

    jquery+uploadify + struts2 + jsp 图片批量上传Demo

    在本文中,我们将深入探讨如何使用jQuery、Uploadify、Struts2和JSP技术实现一个图片批量上传的Demo。这个组合提供了高效、用户友好的文件上传解决方案,特别适合需要处理大量图片的Web应用。 首先,jQuery是一个轻...

    使用fileupload组件实现文件上传功能

    使用fileupload组件实现文件上传功能 FileUpload组件是Apache提供的一款文件上传组件,能够帮助我们轻松实现文件上传功能。下面我们将详细介绍使用FileUpload组件实现文件上传功能的步骤和要点: 首先,需要引入两...

    Jquery 表单验证+本地图片上传-切割-预览

    同时,还可能使用了插件如`jQuery.fileupload`来增强上传功能,例如进度条显示、多文件上传等。 4. **图片切割**:图片切割通常是指用户可以选取图片的一部分作为最终上传的部分。这可能涉及到了HTML5的Canvas元素...

    使用FileUpload组件实现上传功能

    使用FileUpload组件实现上传功能,供大家一起共同分享学习。

    JQuery + java 实现上传进度条

    `JQuery`与`Java`结合可以很好地实现这一功能,同时利用`commons-fileupload`库处理文件上传的细节。以下是对这个上传进度条实现的详细解释: 1. **JQuery**:`JQuery`是一个广泛使用的JavaScript库,简化了DOM操作...

    jquery fileupload上传百分比 JAVA版解决中文乱码

    在IT行业中,文件上传是网页应用中常见的功能之一,jQuery File Upload是一款优秀的文件上传插件,它提供了丰富的自定义选项和强大的功能。本篇将详细探讨如何在Java环境下使用jQuery File Upload实现文件上传并处理...

Global site tag (gtag.js) - Google Analytics