




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Struts2本身并没提供上传的组件,我们可以通过调用上传框架来实现文件的上传。一、配置上传解析器首先要配置项目的框架,也就是倒导入struts2-core-2.2.1.jar库文件,找到org.apache.struts2包下的default.porperties资源文件。如下图;资源文件中给出了不同的strus2的默认配置,我们可看到struts2默认是jakarta作为其文件上传的解析器。jakarta是Commo-FileUpload的框架。如果要使用Commo-FileUpload框架来上传文件,只需将commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar两个jar复制到项目中的WEB-INF/lib目录下就可。如果想要使用COS框架来上传文件,只需将“cos.jar”复制到项目中就可以,然后在修改struts.multipart.parser常量值。修改常量值有两种方法,一是在struts.xml中修改,代码如下:二是在perties中修改,代码如下:sruts.multipart.parser=cos二、实现文件上传的Action创建表单:upload.jsp Jsp代码 1. 5. 6. 7. 8. 9. basehref= 10. 11. Struts2文件上传 12. 13. 14. 15. 16. 17. 18. !- 19. 20. - 21. 22. 23. 24. 25. 26. Struts2完成上传 27. 28. 29. 30. 用户名: 31. 32. 33. 34. 上传文件: 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. base href= Struts2文件上传 !- Struts 2完成上传 用户名: 上传文件: 完成上传Actionpackage net.hncu.struts2.action;Java代码 1. importjava.io.File; 2. importjava.io.FileInputStream; 3. importjava.io.FileOutputStream; 4. importjava.io.InputStream; 5. importjava.io.OutputStream; 6. 7. importorg.apache.struts2.ServletActionContext; 8. 9. importcom.opensymphony.xwork2.ActionSupport; 10. 11. publicclassUploadActionextendsActionSupport 12. /username属性用来封装用户名 13. privateStringusername; 14. 15. /myFile属性用来封装上传的文件 16. privateFilemyFile; 17. 18. /myFileContentType属性用来封装上传文件的类型 19. privateStringmyFileContentType; 20. 21. /myFileFileName属性用来封装上传文件的文件名 22. privateStringmyFileFileName; 23. 24. 25. /获得username值 26. publicStringgetUsername() 27. returnusername; 28. 29. 30. /设置username值 31. publicvoidsetUsername(Stringusername) 32. this.username=username; 33. 34. 35. /获得myFile值 36. publicFilegetMyFile() 37. returnmyFile; 38. 39. 40. /设置myFile值 41. publicvoidsetMyFile(FilemyFile) 42. this.myFile=myFile; 43. 44. 45. /获得myFileContentType值 46. publicStringgetMyFileContentType() 47. returnmyFileContentType; 48. 49. 50. /设置myFileContentType值 51. publicvoidsetMyFileContentType(StringmyFileContentType) 52. this.myFileContentType=myFileContentType; 53. 54. 55. /获得myFileFileName值 56. publicStringgetMyFileFileName() 57. returnmyFileFileName; 58. 59. 60. /设置myFileFileName值 61. publicvoidsetMyFileFileName(StringmyFileFileName) 62. this.myFileFileName=myFileFileName; 63. 64. 65. publicStringexecute()throwsException 66. 67. /基于myFile创建一个文件输入流 68. InputStreamis=newFileInputStream(myFile); 69. 70. /设置上传文件目录 71. StringuploadPath=ServletActionContext.getServletContext() 72. .getRealPath(/upload); 73. 74. /设置目标文件 75. FiletoFile=newFile(uploadPath,this.getMyFileFileName(); 76. 77. /创建一个输出流 78. OutputStreamos=newFileOutputStream(toFile); 79. 80. /设置缓存 81. bytebuffer=newbyte1024; 82. 83. intlength=0; 84. 85. /读取myFile文件输出到toFile文件中 86. while(length=is.read(buffer)0) 87. os.write(buffer,0,length); 88. 89. System.out.println(上传用户+username); 90. System.out.println(上传文件名+myFileFileName); 91. System.out.println(上传文件类型+myFileContentType); 92. /关闭输入流 93. is.close(); 94. 95. /关闭输出流 96. os.close(); 97. 98. returnSUCCESS; 99. 100. 101. import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport / username属性用来封装用户名private String username;/ myFile属性用来封装上传的文件private File myFile;/ myFileContentType属性用来封装上传文件的类型private String myFileContentType;/ myFileFileName属性用来封装上传文件的文件名private String myFileFileName;/获得username值public String getUsername() return username;/设置username值public void setUsername(String username) this.username = username;/获得myFile值public File getMyFile() return myFile;/设置myFile值public void setMyFile(File myFile) this.myFile = myFile;/获得myFileContentType值public String getMyFileContentType() return myFileContentType;/设置myFileContentType值public void setMyFileContentType(String myFileContentType) this.myFileContentType = myFileContentType;/获得myFileFileName值public String getMyFileFileName() return myFileFileName;/设置myFileFileName值public void setMyFileFileName(String myFileFileName) this.myFileFileName = myFileFileName;public String execute() throws Exception /基于myFile创建一个文件输入流InputStream is = new FileInputStream(myFile);/ 设置上传文件目录String uploadPath = ServletActionContext.getServletContext().getRealPath(/upload);/ 设置目标文件File toFile = new File(uploadPath, this.getMyFileFileName();/ 创建一个输出流OutputStream os = new FileOutputStream(toFile);/设置缓存byte buffer = new byte1024;int length = 0;/读取myFile文件输出到toFile文件中while (length = is.read(buffer) 0) os.write(buffer, 0, length);System.out.println(上传用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 杏仁油化妆品原料供应创新创业项目商业计划书
- 2025贵州黔西市钟山镇卫生院第二批次招聘编外人员10人模拟试卷及完整答案详解1套
- 2025贵州瓮安县瓮水街道招聘公益性岗位人员20人模拟试卷及答案详解(全优)
- 2025安徽黄山市黄山区磐基砂石料经营有限公司招聘工作人员考前自测高频考点模拟试题及答案详解(有一套)
- 2025广东深圳市九洲电器有限公司关IQC招聘1人考前自测高频考点模拟试题及一套完整答案详解
- 2025内蒙古鄂尔多斯市康巴什区青年就业见习计划招募模拟试卷及完整答案详解
- 2025湖北恩施州来凤县星熠文化科技有限责任公司招聘8人模拟试卷及完整答案详解1套
- 生态纺织品标准体系-洞察及研究
- 2025年甘肃省张掖市市直医疗卫生单位招聘专业技术人员模拟试卷及答案详解(夺冠系列)
- 2025年临沂郯城县部分医疗卫生事业单位招募见习人员的模拟试卷及答案详解1套
- 国开2025年《行政领导学》形考作业1-4答案
- GB/T 45952-2025科技馆运行评估规范
- 2025年全球汽车供应链核心企业竞争力白皮书-罗兰贝格
- 儿童营养性疾病的预防
- 幼儿园大班安全教育:《暴力玩具不能玩》 课件
- 26个英文字母大小写描红
- 养老院预算及成本管理制度
- 研学旅行基地评估认定评分表
- DL∕T 1867-2018 电力需求响应信息交换规范
- 版良性前列腺增生诊疗指南PPT
- 眼睑基底细胞癌ppt课件
评论
0/150
提交评论