`

jQuery 异步上传插件 Uploadify 使用 (Java平台)

 
阅读更多

Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示。而且是Ajax的,省去了自己写Ajax上传功能的麻烦。不过官方提供的实例时php版本的,本文将详细介绍Uploadify在J2EE中的使用。

 

1.引入头文件(注意一定要把jQuery放在前面):

注意:uploader是上传的Action路径名;formData是传递给Action的参数列表。

 

<script src="lib/jquery-1.8.3.min.js"></script>
<script src="lib/uploadify/jquery.uploadify.min.js" type="text/javascript"></script>
<script type="text/javascript">
		$(function() {
			$('#projectfile').uploadify({
				'swf'      : 'lib/uploadify/uploadify.swf',
				'uploader' : 'ProjectfileAdd.action',
				'formData': {'projectid': '${project.id}'},
				'fileObjName' : 'file',
				'fileSizeLimit' : '0',
				'onQueueComplete' : function(queueData) {
            		alert(queueData.uploadsSuccessful + ' files were successfully uploaded.');
        			}
				
			});
		});
</script>


2.需要上传的地方添加一个<form>,里面有一个<input>(注意其id属性):

 

 

<form>
	<input id="projectfile" name="file" type="file" ></input>
</form>


3.看一下<input>效果如下,还挺美观的

 

4.后台的Action就是一个普通的上传文件的Action,示例如下:

 

package dc.action.projectfile;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

import dc.bean.Project;
import dc.bean.Projectfile;
import dc.bean.User;
import dc.service.ProjectService;
import dc.service.ProjectfileService;

public class ProjectfileAdd extends ActionSupport {
	private static final int FILE_SIZE=16*1024;
	private int projectid;
	private ProjectService projectService;
	private ProjectfileService projectfileService;
	private File file;
	private String fileFileName;
	private String fileContentType;
	
	public int getProjectid() {
		return projectid;
	}

	public void setProjectid(int projectid) {
		this.projectid = projectid;
	}

	public ProjectService getProjectService() {
		return projectService;
	}

	public void setProjectService(ProjectService projectService) {
		this.projectService = projectService;
	}

	public ProjectfileService getProjectfileService() {
		return projectfileService;
	}

	public void setProjectfileService(ProjectfileService projectfileService) {
		this.projectfileService = projectfileService;
	}

	public File getFile() {
		return file;
	}

	public void setFile(File file) {
		this.file = file;
	}

	public String getFileFileName() {
		return fileFileName;
	}

	public void setFileFileName(String fileFileName) {
		this.fileFileName = fileFileName;
	}

	public String getFileContentType() {
		return fileContentType;
	}

	public void setFileContentType(String fileContentType) {
		this.fileContentType = fileContentType;
	}

	public static int getFileSize() {
		return FILE_SIZE;
	}

	//写入文件时候用到的函数
	 public void upLoadFile(File source,File target){
		  InputStream in=null;
		  OutputStream out=null;
		  try{
		   in=new BufferedInputStream(new FileInputStream(source),FILE_SIZE);
		   out=new BufferedOutputStream(new FileOutputStream(target),FILE_SIZE);
		   //in-->image-->out
		   byte[] image=new byte[FILE_SIZE];
		   while(in.read(image)>0){
		    out.write(image);
		   }
		  }catch(IOException ex){
		   ex.printStackTrace();
		  }finally{
		   try{
		    in.close();
		    out.close();
		   }catch(IOException ex){
			ex.printStackTrace();
		   }
		  }
		 }
	 
		public String execute() {
			try {
				Projectfile projectfile=new Projectfile();
				projectfile.setName(fileFileName);
				Project project=projectService.ReadByID(projectid);
				projectfile.setProject(project);
				projectfile.setModifytime( new Timestamp(new Date().getTime()));
				String filepath="file/"+project.getId()+"/"+fileFileName;
				projectfile.setFilepath(filepath);
				projectfile.setFilesize(file.length());
				//不是连接到外网的文件
				projectfile.setFilelink(0);
				projectfile.setContenttype(fileContentType);
				//--记录编辑人------------------
				ActionContext context = ActionContext.getContext();
				Map sessionMap = context.getSession();
				User currentuser=(User)sessionMap.get("user");
				projectfile.setUser(currentuser);
				//------------------------------
				//projectfile.setFilesize(1);
				projectfileService.save(projectfile);
				//文件上传,存至硬盘
				//ServletActionContext.getServletContext().getRealPath获得webRoot绝对路径
				String realfilePath=ServletActionContext.getServletContext().getRealPath("file")
				  +"/"+project.getId()+"/"+this.fileFileName;
				File targetFile=new File(realfilePath);
				targetFile.getParentFile().mkdirs();
				upLoadFile(file,targetFile);
			} catch (Exception ex) {
				ex.printStackTrace();
				return ERROR;
			}
			return SUCCESS;
		}
}


Uploadify官方网站:http://www.uploadify.com/

 

Uploadify下载:http://download.csdn.net/detail/leixiaohua1020/6376463

 

分享到:
评论

相关推荐

    JQuery批量上传插件Uploadify使用详解及参数说明.docx

    **jQuery批量上传插件Uploadify**是一款非常实用的前端文件上传工具,它允许用户通过Flash技术实现批量、异步的文件上传。Uploadify提供了一系列可配置的参数,使其能够适应各种上传需求,同时具备良好的用户体验。 ...

    jquery文件上传插件 jquery.uploadify.js 不支持IE10现在经过修改

    在IT行业中,jQuery Uploadify.js是一款非常流行的前端文件上传插件,它允许用户通过异步方式上传文件到服务器,提供了一种友好的用户体验。然而,随着浏览器版本的更新,一些较旧的插件可能不再兼容新的浏览器,...

    jqueryUploadify+java(Servlet)Demo

    `jQuery Uploadify`是一款基于jQuery的插件,它提供了一个优雅、用户友好的方式来实现文件上传功能,支持多文件选择、进度条显示以及异步上传等特性。本Demo将展示如何将`jQuery Uploadify`与Java的Servlet技术进行...

    jquery uploadify java文件上传

    在使用jQuery Uploadify进行文件上传时,后端通常采用Java技术来接收和处理上传的文件。Java中的主要涉及的技术和组件包括: 1. **Servlet**:作为HTTP请求的处理者,接收前端通过Uploadify发送的POST请求。 2. **...

    jquery uploadify java版

    《jQuery Uploadify与Java结合实现文件上传详解》 在网页应用中,文件上传功能是必不可少的一部分,而jQuery Uploadify是一款非常流行的前端文件上传插件,它提供了丰富的自定义选项和友好的用户界面。本文将深入...

    java文件异步上传

    `jQuery.uploadify`是一个广泛使用的JavaScript插件,用于实现文件的异步上传。在提供的文件列表中,`uploadify.css`和`jquery.uploadify-3.1.js`(以及其压缩版`jquery.uploadify-3.1.min.js`)是这个插件的核心...

    JSP使用文件上传插件uploadify示例

    在本示例中,我们将关注"JSP使用文件上传插件uploadify"的主题,这是一个利用uploadify插件实现AJAX文件上传的教程。uploadify是一款流行且美观的JavaScript插件,它为网页提供了流畅的多文件上传体验。 首先,我们...

    Jquery Uploadify多文件上传(JAVA)

    本文将深入探讨如何使用jQuery Uploadify与Java后端配合,实现高效稳定的多文件上传。 ### 1. jQuery Uploadify 插件简介 jQuery Uploadify是基于jQuery的文件上传组件,它通过Flash和HTML5技术实现了异步文件上传...

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

    本示例探讨了如何结合jQuery Uploadify插件与Apache Fileupload库来实现这一功能,主要面向Java后端开发。这里我们将深入讲解这两个组件的工作原理、集成过程以及关键知识点。 1. jQuery Uploadify 插件: jQuery ...

    jquery uploadify java版本(整合strut2web项目)

    在IT行业中,jQuery Uploadify是一款广泛使用的前端文件上传插件,它可以实现异步批量上传,大大提升了用户体验。本文将深入探讨如何将jQuery Uploadify与Java后端框架Struts2进行整合,以实现在Web项目中的文件上传...

    java使用uploadify插件实现多文件上传完整demo

    Uploadify 是一个基于jQuery的开源文件上传插件,它通过异步方式上传文件,提供用户友好的界面和多种自定义选项。Uploadify 支持多种浏览器,包括IE6+、Firefox、Chrome、Safari 和 Opera。 2. **多文件上传** ...

    uploadify插件java小demo

    在Java环境中使用Uploadify,我们可以构建一个强大的文件上传系统,这篇文章将详细介绍如何在Java后端与Uploadify前端插件配合工作。 首先,我们需要在前端页面引入Uploadify插件的相关资源,包括JavaScript文件、...

    jquery Uploadify

    **jQuery Uploadify** 是一个基于jQuery的文件上传插件,它允许用户在Web应用程序中实现异步、批量或单个文件上传功能。该插件以其易用性、自定义性和高性能而受到开发者们的欢迎。在描述中提到,可能有些初学者在...

    java使用uploadify批量上传文件

    Uploadify是一款优秀的前端文件上传插件,版本3.1提供了批量上传功能,极大地提高了用户上传多文件的效率。本文将深入探讨如何在Java环境中结合Uploadify3.1实现文件的批量上传。 首先,理解Uploadify3.1的工作原理...

    jquery uploadify多文件上传例子和详细API

    jQuery Uploadify是一款强大的JavaScript插件,它允许用户进行多文件上传,同时提供进度条显示,极大地提升了文件上传的用户体验。本文将详细介绍如何在Java Web工程中实现jQuery Uploadify的多文件上传功能,并解析...

    Servlet使用jquery.uploadify上传附件

    在这个场景中,我们将探讨如何使用Servlet结合jQuery的uploadify插件来实现附件的上传。Servlet是Java Web应用中的服务器端组件,用于接收客户端请求并返回响应。jQuery则是一种强大的JavaScript库,它简化了DOM操作...

    jquery uploadify插件多文件上传

    `jQuery Uploadify`是一款流行的JavaScript插件,用于实现文件的多选上传功能。它通过Flash或HTML5技术,提供了一种用户友好的界面,让用户能够方便地上传多个文件到服务器。在本文中,我们将深入探讨`jQuery ...

    jquery.uploadify-v2.1.4上传文件完整例子

    首先,jQuery.uploadify的核心特性在于其异步上传功能。在传统方式下,用户需要等待一个文件上传完成才能提交下一个,而uploadify则允许用户同时上传多个文件,极大地提升了上传效率。这种并行处理的方式显著减少了...

    jQuery uploadify上传文件(JAVA版+Struts2即时预览效果)

    首先,jQuery uploadify是一款优秀的前端文件上传插件,它允许用户通过Ajax方式异步上传文件,提供了友好的用户体验,如进度条显示、多文件上传等。然而,官方提供的示例主要是基于PHP的,对于Java开发者来说,寻找...

    java的jquery的uploadify多文件上传

    `uploadify`则是基于jQuery的一个插件,它通过异步方式实现了文件的批量上传,提供了一套完整的前端上传界面和控制逻辑。这个插件的特点在于其灵活性和自定义性,开发者可以根据需求调整上传按钮样式、进度条显示、...

Global site tag (gtag.js) - Google Analytics