uploadify+ struts2 上传多个文件带进度条

页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
        
        <script type="text/javascript" src="${pageContext.request.contextPath}/jslib/core/jquery-1.4.2.js"></script>
        <script type="text/javascript" src="${pageContext.request.contextPath}/jslib/upLoadUpLoadify/swfobject.js"></script>
        <script type="text/javascript" src="${pageContext.request.contextPath}/jslib/upLoadUpLoadify/jquery.uploadify.v2.1.4.js"></script>
<link rel="stylesheet" href="${pageContext.request.contextPath}/jslib/upLoadUpLoadify/uploadify.css" type="text/css" />
        <script type="text/javascript">
        $(document).ready(function() { 
            $("#fileupload").uploadify({ 
                /*注意前面需要书写path的代码*/ 
                'uploader'       : '${pageContext.request.contextPath}/jslib/upLoadUpLoadify/uploadify.swf',  //上传所用的flash 必须
              'script'         : '${pageContext.request.contextPath}/oneboxtest/uploadtest.do', //请求到
              'cancelImg'      : '${pageContext.request.contextPath}/jslib/upLoadUpLoadify/cancel.png',   //删除的图片
                'queueID'        : 'fileQueue', //和存放队列的DIV的id一致 
                'fileDataName'   : 'fileupload', //和以下input的name属性一致 
                'auto'           : false, //是否自动开始 
                'multi'          : true, //是否支持多文件上传 
                'buttonText'     : 'Browse', //按钮上的文字 
                'simUploadLimit' : 20, //一次同步上传的文件数目 
                'sizeLimit'      : 19871202, //设置单个文件大小限制 
                'queueSizeLimit' : 20, //队列中同时存在的文件个数限制 
                'fileDesc'       : '支持格式:jpg/gif/jpeg/png/bmp/txt/rar/zip.', //如果配置了以下的'fileExt'属性,那么这个属性是必须的 
                'fileExt'        : '*.jpg;*.gif;*.jpeg;*.png;*.bmp;*.txt;*.rar;*.zip',//允许的格式   


                  onComplete: function (event, queueID, fileObj, response, data) { 
$('<li></li>').appendTo('.files').text(response); 
}, 
onError: function(event, queueID, fileObj) { 
               alert("文件:" + fileObj.name + "文件过大上传失败"); 
      }, 
        onCancel: function(event, queueID, fileObj){ 
        alert("取消了" + fileObj.name); 
       
            }); 


        }); 
        </script> 


<script type="text/javascript"> 
                  //必须的 
function uploadifyUpload(){ 
    $('#fileupload').uploadifyUpload(); 

</script> 
   
    </head>
   <body>
<table>
<tr> 
<td>上传图片:</td> 
<td> 
<input type="file" name="fileupload" id="fileupload" /> 
<div id="fileQueue"></div> 
<p> 
<a href="javascript:;" onClick="javascript:uploadifyUpload()">开始上传</a>&nbsp; 
<a href="javascript:jQuery('#fileupload').uploadifyClearQueue()">取消所有上传</a> 
</p> 
<ol class=files></ol> 
</td> 
</tr> 
</table>
   </body>

</html>





action类:


package test.cn.easier.rcs.onebox;


import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;


import javax.servlet.http.HttpServletResponse;


import org.apache.struts2.ServletActionContext;


import cn.easier.rcs.core.action.BaseAction;


public class UpLoadUpLoadifyAction extends BaseAction {
/**
* 唯一序列化
*/
private static final long serialVersionUID = 1L;


private File fileupload; // 和JSP中input标记name同名


// Struts2拦截器获得的文件名,命名规则,File的名字+FileName
// 如此处为 'fileupload' + 'FileName' = 'fileuploadFileName'
private String fileuploadFileName; // 上传来的文件的名字


public File getFileupload() {
return fileupload;
}


public void setFileupload(File fileupload) {
this.fileupload = fileupload;
}


public String getFileuploadFileName() {
return fileuploadFileName;
}


public void setFileuploadFileName(String fileuploadFileName) {
this.fileuploadFileName = fileuploadFileName;
}


public String uploadtest() throws Exception {
System.out.println("进入了页面");


String extName = ""; // 保存文件拓展名
String newFileName = ""; // 保存新的文件名
String nowTimeStr = ""; // 保存当前时间
SimpleDateFormat sDateFormat;
Random r = new Random();


String savePath = ServletActionContext.getServletContext().getRealPath(""); // 获取项目根路径
/*
* 拼串组成要上传保存文件的路径,即:D:\Program
* Files
* \apache-tomcat-6.0.20\webapps
* \(项目名)\pic\secondhand 这样的路径
*/
System.out.println("*********************"+savePath);


HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("utf-8"); // 务必,防止返回文件名是乱码


// 生成随机文件名:当前年月日时分秒+五位随机数(为了在实际项目中防止文件同名而进行的处理)
int rannum = (int) (r.nextDouble() * (99999 - 10000 + 1)) + 10000; // 获取随机数
sDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); // 时间格式化的格式
nowTimeStr = sDateFormat.format(new Date()); // 当前时间


// 获取拓展名
if (fileuploadFileName.lastIndexOf(".") >= 0) {
extName = fileuploadFileName.substring(fileuploadFileName.lastIndexOf("."));
}


newFileName = nowTimeStr + rannum + extName; //文件重命名后的名字
fileupload.renameTo(new File(savePath + newFileName)); //保存文件


response.getWriter().print(fileuploadFileName + " 上传成功");//向页面端返回结果信息


return null; // 这里不需要页面转向,所以返回空就可以了
}


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值