struts2+uploadify多文件上传

直接上代码:

 action类:

package action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class FileUploadAction extends ActionSupport {
	private File img_file;
	private String img_fileContentType;// 格式同上"fileName"+ContentType
	private String img_fileFileName;// 格式同上"fileName"+FileName
	private String savePath;// 文件上传后保存的路径
	private Map<String, Object> dataMap = new HashMap<String, Object>();

	@Override
	/***
	 *  上传文件
	 */
	public String execute() throws Exception {

		
		File dir = new File(getSavePath());
		System.out.println("真正的路径:" + dir.getAbsolutePath());

		// 判断是否存在路径
		if (!dir.exists()) {
			dir.mkdirs();
		}

		// 当前上传的文件
		File file = getImg_file();
		System.out.println("文件:" + file);
		// 获得后缀
		String ext = getImg_fileFileName().substring(
				getImg_fileFileName().lastIndexOf("."));
		System.out.println("后缀名:" + ext);
		String newFileName = UUID.randomUUID() + ext;
		System.out.println("新的文件名:" + newFileName);
		FileOutputStream fos = new FileOutputStream(getSavePath() + "//"
				+ newFileName);
		FileInputStream fis = new FileInputStream(getImg_file());
		byte[] buffers = new byte[1024];
		int len = 0;
		while ((len = fis.read(buffers)) != -1) {
			fos.write(buffers, 0, len);
		}

		fos.close();
		fis.close();

		// String uploadFileName = getImg_fileFileName();
		dataMap.put("filename", newFileName);

		return SUCCESS;
	}

	public File getImg_file() {
		return img_file;
	}

	public void setImg_file(File img_file) {
		this.img_file = img_file;
	}

	public String getImg_fileContentType() {
		return img_fileContentType;
	}

	public void setImg_fileContentType(String img_fileContentType) {
		this.img_fileContentType = img_fileContentType;
	}

	public String getImg_fileFileName() {
		return img_fileFileName;
	}

	public void setImg_fileFileName(String img_fileFileName) {
		this.img_fileFileName = img_fileFileName;
	}

	public String getSavePath() {
		return savePath;
	}

	public void setSavePath(String savePath) {
		this.savePath = savePath;
	}

	public Map<String, Object> getDataMap() {
		return dataMap;
	}

	public void setDataMap(Map<String, Object> dataMap) {
		this.dataMap = dataMap;
	}

}

struts.xml配置:

<constant name="struts.multipart.maxSize" value="10240000000" />
	<package name="default" namespace="" extends="json-default">
		<action name="uploadAction" class="action.FileUploadAction">
			<param name="savePath">C:\devtools\server\apache-tomcat-7.0.57\webapps\upload\weiuserfile</param>
			<result type="json">
				<param name="root">dataMap</param>
			</result>
		</action>
	</package>

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>My JSP 'index.jsp' starting page</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="styles.css">
	-->
<link rel="stylesheet" type="text/css" href="js/uploadify.css">
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="js/jquery.uploadify.min.js"></script>
<script type="text/javascript">
	$(function(){
		$("#img_file").uploadify({
			  auto:false,//是否自动上传
      height: 30,  
         	  buttonText:'选择图片',
        cancelImage:'<%=basePath%>js/uploadify-cancel.png',
				  swf : '<%=basePath%>js/uploadify.swf',
			 	// expressInstall:'js/uploadify/expressInstall.swf',
				 uploader : '<%=basePath%>uploadAction.action', //后台处理上传文件的action 
							width : 120,
							'multi' : true, //设置为true将允许多文件上传 
							'filesSelected' : '4',
							queueID : 'uploadfileQueue',
							fileObjName : 'img_file', //与后台Action中file属性一样
							/*
							formData:{ //附带值       
							'userid':'111',
							'username':'tom', 
							'rnd':'111'
							},
							 */
							fileTypeDesc : '上传文件支持的文件格式:jpg,jpge,gif,png',
							fileTypeExts : '*.jpg;*.jpge;*.gif;*.png',//*.jpg;*.jpge;*.gif;*.png
							queueSizeLimit : 4,//只能一次上传4张图片 
							// simUploadLimit:1,//一次可以上传1个文件
							fileSizeLimit : '20971520',//上传文件最大值   单位为字节   2M
							//返回一个错误,选择文件的时候触发
							onSelectError : function(file, errorCode, errorMsg) {

								switch (errorCode) {
								case -100:
									alert("上传的文件数量已经超出系统限制的4个文件!");
									break;
								case -110:
									alert("文件 [" + file.name
											+ "] 大小超出系统限制的2M大小!");
									break;
								case -120:
									alert("文件 [" + file.name + "] 大小异常!");
									break;
								case -130:
									alert("文件 [" + file.name + "] 类型不正确!");
									break;
								}
							}, //
							//上传到服务器,服务器返回相应信息到data里
							onUploadSuccess : function(file, data, response) {
								var objs = eval('(' + data + ')');
								alert(objs);
								alert(objs.filename);
								var phtml = "<span><img style='width:150;height:150' src='<%=basePath%>weiuserfile/"+objs.filename+"'></span>";
								alert(phtml);
								if ($("#imgs span").length == 0) {
									$("#imgs").html(phtml);
								} else {
									$("#imgs span:last").after(phtml);
								}
							},
							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);  
							}
						});

	});

	//上传文件
	function myUpload() {
		$("#img_file").uploadify('upload', '*');
	}
</script>
</head>

<body>
	<form action="" method="post">
		<input type="file" name="img_file" id="img_file">
		<div id="uploadfileQueue"></div>
		<div id="imgs"></div>
		<div id="dialog-message"></div>
	</form>


	<p>
		<a href="javascript:void(0);" οnclick="myUpload()">上传</a> <a
			href="javascript:$('#img_file').uploadify('cancel')">取消上传</a>
	</p>
</body>
</html>

需要的jar包:


需要的js:


下载连接:http://pan.baidu.com/s/1mgkOHN6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值