1、 下载到官方网址下载“uploadify3.2”插件。
2、 下载swfobject_2_2js插件
3、 搭建struts2框架。
4、 创建upload2.jsp页面,内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>Jquery插件上传</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" type="text/css" href="js/uploadify/uploadify.css">
<script type="text/javascript" src="js/uploadify/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/uploadify/swfobject.js"></script>
<script type="text/javascript" src="js/uploadify/uploadify.js"></script>
<script type="text/javascript" src="js/uploadify/uploadify.min.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
$(function() {
$("#file_upload").uploadify({
debug:false,
auto:true,//是否自动上传
height: 30,
buttonText:'上传文件',
cancelImage:'js/uploadify/uploadify-cancel.png',
swf : 'js/uploadify/uploadify.swf',
expressInstall:'js/uploadify/expressInstall.swf',
uploader : '<%=path%>/upload/fileUpload.action', //后台处理上传文件的action
width : 120 ,
multi:false,//是否允许多个文件上传
queueID:'uploadfileQueue',
fileObjName:'fileName', //与后台Action中file属性一样
formData:{ //附带值
'userid':'111',
'username':'tom',
'rnd':'111'
},
successTimeout:99999,//上传超时时间
overrideEvents:['onDialogClose'],
fileTypeDesc:'上传文件支持的文件格式:jpg,jpge,gif,png',
fileTypeExts:'*.*',//*.jpg;*.jpge;*.gif;*.png
queueSizeLimit : 3,//
// simUploadLimit:1,//一次可以上传1个文件
fileSizeLimit:'20MB',//上传文件最大值
//返回一个错误,选择文件的时候触发
onSelectError:function(file, errorCode, errorMsg){
switch(errorCode) {
case -100:
alert("上传的文件数量已经超出系统限制的"+$('#file_upload').uploadify('settings','queueSizeLimit')+"个文件!");
break;
case -110:
alert("文件 ["+file.name+"] 大小超出系统限制的"+$('#file_upload').uploadify('settings','fileSizeLimit')+"大小!");
break;
case -120:
alert("文件 ["+file.name+"] 大小异常!");
break;
case -130:
alert("文件 ["+file.name+"] 类型不正确!");
break;
}
},
//每次更新上载的文件的进展
onUploadProgress: function(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) {
//alert(bytesUploaded);
//有时候上传进度什么想自己个性化控制,可以利用这个方法
//使用方法见官方说明
},
//检测FLASH失败调用
onFallback:function(){
alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");
},
//上传到服务器,服务器返回相应信息到data里
onUploadSuccess:function(file, data, response){
var fileNameAndPath=data.split(",");
var phtml="<p><a href='#' onlick=downLoad('"+fileNameAndPath[1]+"')>"+fileNameAndPath[0]+"</a><img alt='删除' src='js/uploadify/uploadify-cancel.png' onclick=delFile(this)></p>";
if($("#uploadfileQueue p").length==0){
$("#uploadfileQueue").html(phtml);
}else{
$("#uploadfileQueue p:last").after(phtml);
}
//alert(data+"上传成功");
},
onSelect : function(file) {
//alert(file.name);
},
removeCompleted:true,//上传的文件进度条是否消失
requeueErrors:false,
removeTimeout:2,//进度条消失的时间,默认为3
progressData:"percentage",//显示上传的百分比
onUploadError : function(file,errorCode,errorMsg,errorString,swfuploadifyQueue) {
$("#dialog-message").html(errorString);
} ,
onError:function(event, queueID, fileObj){
alert("文件:" + fileObj.name + " 上传失败");
}
});
});
//删除文件
function delFile(obj){
$(obj).parent().remove();
}
</script>
</head>
<body>
<input type="file" id="file_upload" name="fileName">
<div id="uploadfileQueue" style="width: 400px;">
</div>
</body>
</html>
5、 创建处理上传文件FileUploadAction.java,内容如下:
/**
* @title FileUploadAction.java
* @package com.ys.uploadfile.action
* @description 文件描述
* @author lijf
* @update 2012-12-13 下午04:17:35
* @version V1.0
*/
package com.ys.uploadfile.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
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;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;
public class FileUploadAction extends ActionSupport implements ServletRequestAware {
/**
* @fields serialVersionUID
*/
private static final long serialVersionUID = 1L;
private HttpServletRequest request;
private List<File> fileName;//这里的"fileName"一定要与表单中的文件域名相同
private List<String> fileNameContentType;//格式同上"fileName"+ContentType
private List<String> fileNameFileName;//格式同上"fileName"+FileName
private String savePath;//文件上传后保存的路径
/**
*
* @return
* @throws Exception
* @author lijf
* @description 上传文件
* @update 2013-1-26 下午02:15:26
*/
public void upload() throws Exception {//intentionPicture
String uploadFileName="";
File dir=new File(getSavePath());
String savePath=getSavePath();//保存上传文件的地址
if(!dir.exists()){
dir.mkdirs();
}
List<File> files=getFileName();
for(int i=0;i<files.size();i++){
FileOutputStream fos=new FileOutputStream(getSavePath()+"\\"+getFileNameFileName().get(i));
FileInputStream fis=new FileInputStream(getFileName().get(i));
byte []buffers=new byte[1024];
int len=0;
while((len=fis.read(buffers))!=-1){
fos.write(buffers,0,len);
}
fos.close();
fis.close();
uploadFileName=getFileNameFileName().get(i);
}
//设置响应内容的字符串编码
ServletActionContext.getResponse().setCharacterEncoding("UTF-8");
ServletActionContext.getResponse().setContentType("text/plain");
ServletActionContext.getResponse().getWriter().print(uploadFileName+","+savePath+"\\"+uploadFileName);
}
/* (non-Javadoc)下载文件
* @see com.opensymphony.xwork2.ActionSupport#execute()
*/
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return "success";
}
public InputStream getInputStream() {
return ServletActionContext.getServletContext().getResourceAsStream("/" + fileName);
}
/* (non-Javadoc)
* @see org.apache.struts2.interceptor.ServletRequestAware#setServletRequest(javax.servlet.http.HttpServletRequest)
*/
public void setServletRequest(HttpServletRequest req) {
this.request=req;
}
public List<File> getFileName() {
return fileName;
}
public void setFileName(List<File> fileName) {
this.fileName = fileName;
}
public List<String> getFileNameContentType() {
return fileNameContentType;
}
public void setFileNameContentType(List<String> fileNameContentType) {
this.fileNameContentType = fileNameContentType;
}
public List<String> getFileNameFileName() {
return fileNameFileName;
}
public void setFileNameFileName(List<String> fileNameFileName) {
this.fileNameFileName = fileNameFileName;
}
@SuppressWarnings("deprecation")
public String getSavePath() {
return request.getRealPath(savePath);
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
}
6、 struts2.xml配置内容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 上传文件的action -->
<constant name="struts.multipart.maxSize" value="1024000000"/>
<package name="upload" namespace="/upload" extends="struts-default">
<action name="fileUpload" class="com.ys.uploadfile.action.FileUploadAction" method="upload">
<param name="savePath">/uploads</param>
</action>
</package>
</struts>
注:uploadify的属性配置请参考附件
相关推荐
jquery_uploadify_v3.2版 jquery.uploadify.js 英文提示汉化
这个完整的工程是将Uploadify与Struts2框架结合,以Java后端作为处理服务器端请求的核心,实现文件上传功能。 ### 1. jQuery Uploadify 3.2 Uploadify 3.2是基于jQuery的一个强大的文件上传组件,其主要特性包括:...
标题中的"JQuery_uploadify_struts2_jsp__ajax多文件上传"涉及到的是一个使用jQuery、uploadify插件、Struts2和JSP技术实现的AJAX多文件上传功能。这个功能允许用户在不刷新页面的情况下,上传多个文件到服务器。 ...
今天我要给大家介绍额就是一款jQuery的无刷新上传插件 -UploadifyjQuery 上传插件Uploadify3.2最新版本中文实用手册,对于该插件的属性方法进行详细讲解官方地址:http://w 资源太大,传百度网盘了,链接在附件中,...
《jQuery插件uploadify3.2深度解析》 在当今的Web开发中,用户交互体验是至关重要的一环,其中文件上传功能是常见的需求之一。jQuery作为JavaScript库的翘楚,其丰富的插件生态为开发者提供了便利。Uploadify,便是...
- `jquery.uploadify.js` 和 `jquery.uploadify.min.js`:这是jQuery插件的主要脚本文件,包含Uploadify的逻辑代码,`min.js`是压缩版,用于生产环境以减少加载时间。 - `index.php`:示例页面,展示了如何在实际...
jQuery的广泛使用使得开发者对它的API和用法比较熟悉,因此使用Uploadify3.2可以降低学习曲线。 Uploadify3.2的核心功能之一是支持多文件上传。用户可以通过简单的界面选择并上传多个文件,而无需多次点击或等待每...
Uploadify3.2是一款流行的JavaScript插件,它与ASP.NET结合使用,能够实现优雅且高效的文件上传体验。在这个项目中,我们看到Uploadify3.2被优化以适应ASP.NET环境,实现了批量上传的功能。 Uploadify3.2参数详解:...
jquery+uploadify3.2实现多文件上传并且有进度(IE,FF,Google浏览器兼容),本人已经通过IE,火狐,google浏览器测试通过了。将项目直接导入myeclipse下就可以直接运行!(IE,FF,Google浏览器兼容) 附件大小...
在本文中,我们将深入探讨如何在ASP.NET环境中利用jQuery Uploadify 3.2插件实现文件上传功能。jQuery Uploadify是一款流行的JavaScript库,它提供了一种直观、用户友好的方式来处理多文件上传,适用于各种Web应用...
6. **Struts2集成**:如果你的项目使用Struts2框架,需要将Uploadify的服务器端脚本与Struts2的Action相结合。在Action中添加接收文件的属性,使用Struts2的注解或XML配置来处理文件上传。 7. **安全性考虑**:在...
"uploadify_v3.2" 是一个专门针对JSP平台的文件上传组件,它利用Flash技术来实现用户界面。Uploadify是一款功能强大的JavaScript插件,主要用于网页上的文件上传操作,提供了一种简单、友好的用户体验。这个版本是...
### 使用jQuery Uploadify 3.0进行文件上传的详尽指南 #### 一、简介 jQuery Uploadify是一款基于Flash技术的文件上传插件,旨在简化前端文件上传过程,提供友好的用户界面。此插件支持多种文件上传方式,并且可以...
jQuery与Uploadify概述** jQuery是一个广泛使用的JavaScript库,简化了HTML DOM操作、事件处理、动画效果和Ajax交互。Uploadify是基于jQuery的插件,它利用Flash的FileReference对象实现了文件选择和上传的异步...
uploadify3.2配置说明只有说明没有插件
这是根据uploadify3 2结合struts2搭建的文件上传环境 可以直接导入eclipse运行 每步实现基本都加了注释 以下是我碰到的问题: 1 判断session是否失效 本实例没测试这个问题 但在工作项目中碰到了 但原因在这里...
在这个版本中,`uploadify`库结合了JSP(JavaServer Pages)技术,为Web开发者提供了一个高效且用户友好的文件上传工具。下面将详细介绍`uploadify`的核心功能、工作原理以及如何在JSP环境中集成和使用。 1. **核心...
总之,本项目展示了如何将前端的jQuery Uploadify插件与Java后端相结合,实现一个高效且用户友好的批量文件上传功能。对于想要学习这一领域的开发者来说,这是一个很好的实践案例。通过深入研究此项目,你可以了解到...