struts2文件上传

1.UploadAction代码:多文件上传

  1. packagecom.hxz.action;
  2. importjava.io.File;
  3. importjava.io.FileInputStream;
  4. importjava.io.FileOutputStream;
  5. importjava.io.InputStream;
  6. importjava.io.OutputStream;
  7. importorg.apache.struts2.ServletActionContext;
  8. importcom.hxz.exception.NameException;
  9. importcom.opensymphony.xwork2.ActionContext;
  10. importcom.opensymphony.xwork2.ActionSupport;
  11. @SuppressWarnings("serial")
  12. publicclassUploadActionextendsActionSupport{
  13. privateStringtitle;
  14. privateFile[]upload;
  15. privateString[]uploadContentType;
  16. privateString[]uploadFileName;
  17. privateStringsavePath;
  18. publicFile[]getUpload(){
  19. returnupload;
  20. }
  21. publicvoidsetUpload(File[]upload){
  22. this.upload=upload;
  23. }
  24. publicString[]getUploadContentType(){
  25. returnuploadContentType;
  26. }
  27. publicvoidsetUploadContentType(String[]uploadContentType){
  28. this.uploadContentType=uploadContentType;
  29. }
  30. publicString[]getUploadFileName(){
  31. returnuploadFileName;
  32. }
  33. publicvoidsetUploadFileName(String[]uploadFileName){
  34. this.uploadFileName=uploadFileName;
  35. }
  36. publicStringgetSavePath()throwsException{
  37. returnServletActionContext.getRequest().getRealPath(savePath);
  38. }
  39. publicvoidsetSavePath(StringsavePath){
  40. this.savePath=savePath;
  41. }
  42. publicStringgetTitle(){
  43. returntitle;
  44. }
  45. publicvoidsetTitle(Stringtitle){
  46. this.title=title;
  47. }
  48. publicStringexecute()throwsException{
  49. File[]files=getUpload();
  50. for(inti=0;i<files.length;i++){
  51. try{
  52. InputStreamis=newFileInputStream(files[i]);
  53. Filefile=newFile(this.getSavePath(),this.getUploadFileName()[i]);
  54. OutputStreamos=newFileOutputStream(file);
  55. byte[]buffer=newbyte[1024];
  56. intlen=0;
  57. while((len=is.read(buffer))>0){
  58. os.write(buffer,0,len);
  59. }
  60. os.close();
  61. is.close();
  62. }catch(Exceptione){
  63. e.printStackTrace();
  64. thrownewNameException("上传文件错误!");
  65. }
  66. }
  67. return"zhe";
  68. }
  69. }

2.upload.jsp

  1. <%@pagelanguage="java"pageEncoding="GBK"%>
  2. <%@taglibprefix="s"uri="/struts-tags"%>
  3. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
  4. <html>
  5. <head>
  6. <title>UploadFile</title>
  7. </head>
  8. <body>
  9. <formaction="uploadMany.action"method="post"enctype="multipart/form-data">
  10. <s:fielderror/>
  11. ${requestScope.typeError}<br>
  12. 文件标题:<inputtype="text"name="title"/><br>
  13. 选择1文件:<inputtype="file"name="upload"/><br>
  14. 选择2文件:<inputtype="file"name="upload"/><br>
  15. 选择3文件:<inputtype="file"name="upload"/><br>
  16. <inputtype="submit"value="上传"/>
  17. </form>
  18. </body>
  19. </html>

3.strust.xml,采用fileUpload拦截器实现文件类型和大小验证

  1. <?xmlversion="1.0"encoding="GBK"?>
  2. <!DOCTYPEstrutsPUBLIC
  3. "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5. <struts>
  6. <constantname="struts.custom.i18n.resources"value="globalMessages"/>
  7. <constantname="struts.i18n.encoding"value="utf-8"/>
  8. <packagename="lee"extends="json-default">
  9. <global-exception-mappings>
  10. <!--指Action抛出AuctionException异常时,转入名为exception的结果。-->
  11. <exception-mappingexception="com.hxz.excepton.NameException"result="exception"/>
  12. <!--指Action抛出Exception异常时,转入名为exception的结果。-->
  13. <exception-mappingexception="java.lang.Exception"result="exception"/>
  14. </global-exception-mappings>
  15. <actionname="readName"class="com.hxz.action.NameAction">
  16. <resultname="success">/testJstl.jsp</result>
  17. <resultname="error">/error.jsp</result>
  18. </action>
  19. <actionname="getNameById"class="com.hxz.action.NameAction"method="getNameById">
  20. <resultname="success"type="json">/name.html</result>
  21. <resultname="error">/error.jsp</result>
  22. </action>
  23. <actionname="updateName"class="com.hxz.action.NameAction"method="updateName">
  24. <resultname="success">/name.html</result>
  25. <resultname="error">/error.jsp</result>
  26. </action>
  27. <actionname="upload"class="com.hxz.action.UploadAction">
  28. <interceptor-refname="fileUpload">
  29. <paramname="allowedTypes">image/bmp,image/x-png,image/gif,image/pjpeg</param>
  30. <paramname="maximumSize">2000</param>
  31. </interceptor-ref>
  32. <interceptor-refname="defaultStack"/>
  33. <paramname="savePath">/upload</param>
  34. <resultname="zhe">/upload/succ.jsp</result>
  35. <resultname="input">/upload/upload.jsp</result>
  36. </action>
  37. </package>
  38. </struts>

4.成功页面succ.jsp

  1. <%@pagelanguage="java"pageEncoding="GBK"%>
  2. <%@taglibprefix="s"uri="/struts-tags"%>
  3. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
  4. <html>
  5. <head>
  6. <title>succ.jsp</title>
  7. <metahttp-equiv="pragma"content="no-cache">
  8. <metahttp-equiv="cache-control"content="no-cache">
  9. <metahttp-equiv="expires"content="0">
  10. <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
  11. <metahttp-equiv="description"content="Thisismypage">
  12. </head>
  13. <body>
  14. 文件标题:<s:propertyvalue="+title"/><br>
  15. <imgsrc="<s:propertyvalue="uploadFileName[0]"/>"/>
  16. <imgsrc="<s:propertyvalue="uploadFileName[1]"/>"/>
  17. <imgsrc="<s:propertyvalue="uploadFileName[2]"/>"/>
  18. </body>
  19. </html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值