使用Uploadify插件在struts2中实现多文件上传示例
来源:互联网 发布:淘宝评价链接怎么发 编辑:程序博客网 时间:2024/05/02 01:54
使用到的版本为:struts2.1 + uploadify3.2 + swfobject2.2
package com.ssh.web.controller;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import org.apache.struts2.ServletActionContext;/** * 文件上传Action * @author dzm */public class UploadFileAction extends BaseAction {/** * */private static final long serialVersionUID = 7405040279951251816L;// 封装上传文件域private File[] fileName;// 封装上传文件类型private String[] fileNameContentType;// 封装上传文件名private String[] fileNameFileName;// 文件保存路径private String savePath;@SuppressWarnings("deprecation")public String uploadFile() throws Exception {File dir=new File(getSavePath()); if(!dir.exists()){ dir.mkdirs(); }String path = ServletActionContext.getRequest().getRealPath(savePath);for (int i = 0; i < fileName.length; i++) {FileOutputStream fos = new FileOutputStream(path + "\\" + this.fileNameFileName[i]);FileInputStream fin = new FileInputStream(fileName[i]);byte[] buff = new byte[1024];int len = 0;while ((len = fin.read(buff)) > 0) {fos.write(buff, 0, len);}}this.getResponse().getWriter().write("ok!!");return null;}public File[] getFileName() {return fileName;}public void setFileName(File[] fileName) {this.fileName = fileName;}public String[] getFileNameContentType() {return fileNameContentType;}public void setFileNameContentType(String[] fileNameContentType) {this.fileNameContentType = fileNameContentType;}public String[] getFileNameFileName() {return fileNameFileName;}public void setFileNameFileName(String[] fileNameFileName) {this.fileNameFileName = fileNameFileName;}public void setSavePath(String savePath) {this.savePath = savePath;}public String getSavePath() {return savePath;}}
package com.ssh.web.controller;import java.io.FileInputStream;import java.io.InputStream;import java.io.OutputStream;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;/** * 文件下载Action * @author dzm */public class DownloadFileAction extends BaseAction {/** * */private static final long serialVersionUID = 6072847986960679635L;private String fileName;// 文件名private String loadPath;// 文件路径public String downFile() throws Exception {String path = ServletActionContext.getRequest().getRealPath(loadPath);InputStream fin = new FileInputStream(path + "\\" + fileName);HttpServletResponse response = this.getResponse();response.reset();response.setContentType("application/x-msdownload;charset=utf-8");response.addHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");OutputStream out = response.getOutputStream();int len = 0;byte[] buff = new byte[1024];while ((len = fin.read(buff)) > 0) {out.write(buff, 0, len);}out.flush();fin.close();return null;}public String getFileName() {return fileName;}public void setFileName(String fileName) {this.fileName = fileName;}public String getLoadPath() {return loadPath;}public void setLoadPath(String loadPath) {this.loadPath = loadPath;}}
<%@ page language="java" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>使用uploadify上传文件</title> <link href="${pageContext.request.contextPath }/js/uploadify/uploadify.css" type="text/css" rel="stylesheet" /><script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.min.js"></script><script type="text/javascript" src="${pageContext.request.contextPath }/js/uploadify/swfobject.js"></script><script type="text/javascript" src="${pageContext.request.contextPath }/js/uploadify/jquery.uploadify.min.js"></script><style type="text/css"> #file_queue { background-color: #FFF; border-radius: 3px; box-shadow: 0 1px 3px rgba(0,0,0,0.25); height: 103px; margin-bottom: 10px; overflow: auto; padding: 5px 10px; width: 300px; } </style><script type="text/javascript">$(function(){$("#upload_file").uploadify({"swf":"${pageContext.request.contextPath }/js/uploadify/uploadify.swf","uploader" : "${pageContext.request.contextPath }/upload/uploadify.action","queueID" : "file_queue", //设置一个拥有唯一ID的DOM元素来作为显示上传队列的容器"fileObjName" : "fileName", //定义上传数据处理文件中接收数据使用的文件对象名 "auto" : false, //是否自动开始 "multi": true, //是否支持多文件上传 "buttonText": "选择文件", //按钮上的文字 "simUploadLimit" : 1, //一次同步上传的文件数目 "fileSizeLimit" : "100KB",//限制的大小要转换成KB否则容易报错,这里是总共的大小,不是单个文件的 "queueSizeLimit" : 2, //队列中同时存在的文件个数限制 "fileTypeDesc": "Image Files", //如果配置了以下的'fileTypeExts'属性,那么这个属性是必须的 "fileTypeExts": "*.jpg;*.png",//允许的格式 "onUploadSuccess": function (file, data, response) { alert("文件:" + file.name + "上传成功....服务器信息"+data); $("#download_file").append("<a href='${pageContext.request.contextPath }/upload/download.action?fileName="+file.name+"'>"+file.name+"</a><br/>"); }, "onUploadError": function(file, errorCode, errorMsg, errorString) { alert("文件:" + file.name + "上传失败...."+errorCode+"...."+errorMsg+"...."+errorString); }, "onCancel": function(file){ alert("The file " + file.name + " was cancelled."); },"onClearQueue" : function(queueItemCount) { alert("队列中" + queueItemCount + " 个文件被清空。");}});});</script> </head> <body><div id="file_queue"></div><input type="file" name="fileName" id="upload_file" /> <p> <a href="javascript:$('#upload_file').uploadify('upload','*');" id="btn1">开始上传</a> <a href="javascript:$('#upload_file').uploadify('cancel','*');;" id="btn2">清空队列</a> </p> <div id="download_file"> </div> </body></html>
struts.xml的配置信息
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><constant name="struts.i18n.encoding" value="UTF-8" /><constant name="struts.devMode" value="true" /><constant name="struts.configuration.xml.reload" value="true" /><package name="upload" namespace="/upload" extends="struts-default"><interceptors><!-- 对上传文件进行过滤 --><interceptor-stack name="uploadPermitStack"><interceptor-ref name="defaultStack" /><interceptor-ref name="fileUpload"> <param name="allowedTypes">image/jpeg,image/png</param><param name="maximumSize">102400</param> </interceptor-ref></interceptor-stack></interceptors><action name="uploadify" class="com.ssh.web.controller.UploadFileAction" method="uploadFile"><interceptor-ref name="uploadPermitStack" /><param name="savePath">/upload/test</param><result name="input">/error.jsp</result></action><action name="download" class="com.ssh.web.controller.DownloadFileAction" method="downFile"><param name="loadPath">/upload/test</param></action></package></struts>
0 0
- 使用Uploadify插件在struts2中实现多文件上传示例
- Struts2+JQuery.uploadify插件实现带进度的多文件上传示例
- Struts2+JQuery.uploadify插件实现带进度的多文件上传示例
- 在Struts2中使用Uploadify组件上传文件
- 在Struts2中使用Uploadify组件上传文件
- 使用uploadify组件在struts2中实现上传
- Struts2+JQuery.uploadify插件实现带进度的多文件上传示例【也可以设置去掉进度条的显示】
- 使用thinkphp实现上传文件(uploadify插件)
- 使用struts2和uploadify实现多文件上传
- Struts2+Jquery.uploadify实现的文件上传特效示例代码
- uploadify+Struts2实现多文件上传
- uploadify插件实现多文件上传
- struts2 uploadify 多文件上传
- struts2+uploadify多文件上传
- Jquery插件(uploadify插件实现多文件上传)
- Jfinal+DWZ使用uploadify插件实现文件上传
- JQuery上传插件Uploadify使用详解【struts2+uploadify+jquery】
- JQuery多文件上传插件Uploadify在ASP.NET中的实现
- Java异常分类
- jquery $(document).ready() 与window.onload的区别
- 文章标题
- 我的linux 命令1
- SystemClock.sleep和Thread.sleep的区别
- 使用Uploadify插件在struts2中实现多文件上传示例
- java单例模式
- 李峤诗200首的抓取
- 美团团购单交易额预估问题
- java学习之项目出现红色感叹号
- Ubuntu 无线网卡
- 结构体使用注意
- 程序员,凭什么让你拿二十万
- 网站建设如何做好页面布局合理