浏览 5392 次
锁定老帖子 主题:struts2文件上传下载
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-17
文件上传部分:
上传页面 upload.jsp
<s:form action ="upload" method ="POST" enctype ="multipart/form-data" >
<s:file name ="file" label ="上传文件"/> <s:submit /> </s:form > 上传 UploadAction.java
private File file;
private String fileFileName; private String fileContextType; private String root; private HttpServletRequest request; private Map session; @Override public String execute() throws Exception { session.put("fileFileName", fileFileName); //取文件后缀名 String lastname=null; int i = fileFileName.lastIndexOf('.'); lastname=fileFileName.substring(i+1); //取当前日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Calendar calendar = Calendar.getInstance(); String date=sdf.format(calendar.getTime()); //10亿的随机数 java.util.Random r=new java.util.Random(); String radom=String.valueOf(r.nextInt(1000000000)); fileFileName=date+radom+"."+lastname; session.put("fname", fileFileName); InputStream is=new FileInputStream(file); root= ServletActionContext.getRequest().getRealPath("/upload") ;//存储到apache项目发布目录上 // String root="D:\\a1/upload";//存储到项目文件夹里 session.put("fpath", root); File copyFile=new File(root,fileFileName); OutputStream os=new FileOutputStream(copyFile); byte[] buffer=new byte[400]; int length=0; while( (length=is.read(buffer)) > 0 ){ os.write(buffer, 0, length); } is.close(); os.close(); return SUCCESS; } struts.xml配置
<action name="upload"
class="com.enorth.mpup.action.UploadAction"> <result name="success">uploadshow.jsp</result> <result name="input">index.jsp</result> </action> 文件下载部分:
下载页面 uploadshow.jsp
<a href="download.action" target="_blank">
<%=session.getAttribute("fileFileName") %> </a> 下载 FileDownAction.java
private String fileName;// 初始的通过param指定的文件名属性
private String inputPath;// 指定要被下载的文件路径 private HttpServletRequest request; private Map session; public InputStream getInputStream() throws Exception { // 通过 ServletContext,也就是application 来读取数据 inputPath="/upload/"+(String)session.get("fname"); return ServletActionContext.getServletContext().getResourceAsStream(inputPath); } public String execute() throws Exception { return SUCCESS; } /** 提供转换编码后的供下载用的文件名 */ public String getDownloadFileName() { fileName=(String) session.get("fname"); System.out.println(fileName); String downFileName = fileName; try { downFileName = new String(downFileName.getBytes(), "ISO8859-1"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return downFileName; } struts.xml配置
<!-- 下载现有文件 -->
<action name="download" class="com.enorth.mpup.action.FileDownAction"> <!-- <param name="inputPath">/download/aaa.txt</param> --> <!-- 初始文件名 <param name="fileName">aaa.txt</param>--> <result name="success" type="stream"> <param name="contentType"> application/octet-stream;charset=ISO8859-1 </param> <param name="inputName">inputStream</param> <!-- 使用经过转码的文件名作为下载文件名,downloadFileName属性 对应action类中的方法 getDownloadFileName() --> <param name="contentDisposition"> attachment;filename="${downloadFileName}" </param> <param name="bufferSize">4096</param> </result> </action> 以上均为部分核心文件.
Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location] 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-06-17
你丫来混分的? 看你连发3个新手帖子....
|
|
返回顶楼 | |