1、新建upload.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
  2. <%@ taglib prefix="s" uri="/struts-tags" %>
  3.  
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. </head>
  8.  
  9. <body>
  10. <s:form action="upload" theme="simple" method="post" namespace="" enctype="multipart/form-data">
  11. <table align="center" width="40%" border="1">
  12. <tr>
  13. <td>
  14. username
  15. </td>
  16. <td>
  17. <s:textfield name="username" ></s:textfield>
  18. </td>
  19. </tr>
  20. <tr>
  21. <td>
  22. password
  23. </td>
  24. <td>
  25. <s:textfield name="password" ></s:textfield>
  26. </td>
  27. </tr>
  28. <tr>
  29. <td>
  30. file
  31. </td>
  32. <td>
  33. <s:file name="file"></s:file>
  34. </td>
  35. </tr>
  36. <tr>
  37. <td>
  38. <s:submit value=" submit "></s:submit>
  39. </td>
  40. <td>
  41. <s:reset value=" reset "></s:reset>
  42. </td>
  43. </tr>
  44. </table>
  45.  
  46. </s:form>
  47. </body>
  48. </html>

2、新建uploadResult.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
  2. <%@ taglib prefix="s" uri="/struts-tags" %>
  3.  
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. <title>My JSP 'uploadResult.jsp' starting page</title>
  8. </head>
  9.  
  10. <body>
  11. username:<s:property value="username"></s:property>
  12. password:<s:property value="password"></s:property>
  13. file:<s:property value="fileFileName"></s:property>
  14. </body>
  15. </html>

3、新建UploadAction.java

  1. package com.test.action;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6. import java.io.InputStream;
  7. import java.io.OutputStream;
  8.  
  9. import org.apache.struts2.ServletActionContext;
  10.  
  11. import com.opensymphony.xwork2.ActionSupport;
  12.  
  13. public class UploadAction extends ActionSupport {
  14.  
  15. private static final long serialVersionUID = 1L;
  16.  
  17. private String username;
  18.  
  19. private String password;
  20. //必须添加的三个属性
      //file
  21. private File file;
  22. //fileFileName
  23. private String fileFileName;
  24. //fileContentType
  25. private String fileContentType;
  26.  
  27. public String getUsername() {
  28. return username;
  29. }
  30.  
  31. public void setUsername(String username) {
  32. this.username = username;
  33. }
  34.  
  35. public String getPassword() {
  36. return password;
  37. }
  38.  
  39. public void setPassword(String password) {
  40. this.password = password;
  41. }
  42.  
  43. public File getFile() {
  44. return file;
  45. }
  46.  
  47. public void setFile(File file) {
  48. this.file = file;
  49. }
  50.  
  51. public String getFileFileName() {
  52. return fileFileName;
  53. }
  54.  
  55. public void setFileFileName(String fileFileName) {
  56. this.fileFileName = fileFileName;
  57. }
  58.  
  59. public String getFileContentType() {
  60. return fileContentType;
  61. }
  62.  
  63. public void setFileContentType(String fileContentType) {
  64. this.fileContentType = fileContentType;
  65. }
  66.  
  67. public String execute() throws Exception
  68. {
  69. InputStream is = new FileInputStream(file);
  70. String root = ServletActionContext.getServletContext().getRealPath("/upload");
  71. File destFile = new File(root,this.getFileFileName());
  72. OutputStream os = new FileOutputStream(destFile);
  73. //字节数组
  74. byte[] buffer = new byte[400];
  75. int length = 0;
  76. while ((length = is.read(buffer))>0) {
  77. os.write(buffer);
  78. }
  79. is.close();
  80. os.close();
  81. return SUCCESS;
  82. }
  83. }

4、struts.xml

  1. <action name="upload" class="com.test.action.UploadAction">
  2. <result name="success">/uploadResult.jsp</result>
  3. </action>

多文件上传:

1、upload.jsp

  1. <body>
  2. <s:form action="upload" theme="simple" method="post" namespace="" enctype="multipart/form-data">
  3. <table align="center" width="40%" border="1">
  4. <tr>
  5. <td>
  6. username
  7. </td>
  8. <td>
  9. <s:textfield name="username" ></s:textfield>
  10. </td>
  11. </tr>
  12. <tr>
  13. <td>
  14. password
  15. </td>
  16. <td>
  17. <s:textfield name="password" ></s:textfield>
  18. </td>
  19. </tr>
  20. <tr>
  21. <td>
  22. file1
  23. </td>
  24. <td>
  25. <s:file name="file"></s:file>
  26. </td>
  27. </tr>
  28. <tr>
  29. <td>
  30. file2
  31. </td>
  32. <td>
  33. <s:file name="file"></s:file>
  34. </td>
  35. </tr>
  36. <tr>
  37. <td>
  38. file3
  39. </td>
  40. <td>
  41. <s:file name="file"></s:file>
  42. </td>
  43. </tr>
  44. <tr>
  45. <td>
  46. <s:submit value=" submit "></s:submit>
  47. </td>
  48. <td>
  49. <s:reset value=" reset "></s:reset>
  50. </td>
  51. </tr>
  52. </table>
  53.  
  54. </s:form>
  55. </body>

2、uploadResult.jsp

  1. <body>
  2. username:<s:property value="username"></s:property>
  3. password:<s:property value="password"></s:property>
  4. file:<s:property value="fileFileName"></s:property>
  5. </body>

3、uploadAction.jsp

  1. package com.test.action;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6. import java.io.InputStream;
  7. import java.io.OutputStream;
  8. import java.util.List;
  9.  
  10. import javax.swing.ListModel;
  11.  
  12. import org.apache.struts2.ServletActionContext;
  13.  
  14. import com.opensymphony.xwork2.ActionSupport;
  15.  
  16. public class UploadAction extends ActionSupport {
  17.  
  18. private static final long serialVersionUID = 1L;
  19.  
  20. private String username;
  21.  
  22. private String password;
  23.  
  24. private List<File> file;
  25.  
  26. private List<String> fileFileName;
  27.  
  28. private List<String> fileContentType;
  29.  
  30. public String getUsername() {
  31. return username;
  32. }
  33.  
  34. public void setUsername(String username) {
  35. this.username = username;
  36. }
  37.  
  38. public String getPassword() {
  39. return password;
  40. }
  41.  
  42. public void setPassword(String password) {
  43. this.password = password;
  44. }
  45.  
  46. public List<File> getFile() {
  47. return file;
  48. }
  49.  
  50. public void setFile(List<File> file) {
  51. this.file = file;
  52. }
  53.  
  54. public List<String> getFileFileName() {
  55. return fileFileName;
  56. }
  57.  
  58. public void setFileFileName(List<String> fileFileName) {
  59. this.fileFileName = fileFileName;
  60. }
  61.  
  62. public List<String> getFileContentType() {
  63. return fileContentType;
  64. }
  65.  
  66. public void setFileContentType(List<String> fileContentType) {
  67. this.fileContentType = fileContentType;
  68. }
  69.  
  70. public String execute() throws Exception
  71. {
  72. for (int i = 0; i < file.size(); i++) {
  73. InputStream is = new FileInputStream(file.get(i));
  74. String root = ServletActionContext.getServletContext().getRealPath("/upload");
  75. File destFile = new File(root,this.getFileFileName().get(i));
  76. OutputStream os = new FileOutputStream(destFile);
  77. //字节数组
  78. byte[] buffer = new byte[400];
  79. int length = 0;
  80. while ((length = is.read(buffer))>0) {
  81. os.write(buffer);
  82. }
  83. is.close();
  84. os.close();
  85. }
  86. return SUCCESS;
  87. }
  88. }

java学习笔记 (8) —— Struts2 实现上传的更多相关文章

  1. struts2学习笔记之十:文件上传

    Struts2的上传 1.Struts2默认采用了apache commons-fileupload 2.Struts2支持三种类型的上传组件 3.需要引入commons-fileupload相关依赖 ...

  2. 学习Struts--Chap07:Struts2文件上传和下载

    1.struts2文件上传 1.1.struts2文件上传的基本概述 在开发web应用的时候,我们一般会为用户提供文件上传的功能,比如用户上传一张图像作为头像等.为了能上传文件,我们必须将表单的met ...

  3. [原创]java WEB学习笔记49:文件上传基础,基于表单的文件上传,使用fileuoload 组件

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  4. [原创]java WEB学习笔记50:文件上传案例

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  5. 笔记:Struts2 文件上传和下载

    为了上传文件必须将表单的method设置为POST,将 enctype 设置为 muiltipart/form-data,只有设置为这种情况下,浏览器才会把用户选择文件的二进制数据发送给服务器. 上传 ...

  6. PHP学习笔记--文件目录操作(文件上传实例)

    文件操作是每个语言必须有的,不仅仅局限于PHP,这里我们就仅用PHP进行讲解 php的文件高级操作和文件上传实例我放在文章的最后部分.--以后我还会给大家写一个PHP类似于网盘操作的例子 注意:阅读此 ...

  7. php学习笔记:文件的上传(包含设置文件的上传大小限制)

    今天写的是文件上传,前几天自学的正规则又忘记了,用了很笨的方法去判断格式,直接上代码: <?php /** * Created by PhpStorm. * User: Administrato ...

  8. PHP学习笔记 02 之文件上传

    我们了解了表单传值后,这些我就可以完成PHP的文件上传了.我们了解PHP文件上传前,先了解PHP文件上传的原理. 一.PHP上传文件原理 第一步:将本地的文件通过form表单上传到服务器的临时目录中, ...

  9. Kali学习笔记38:文件上传漏洞

    早些年,提到Web渗透,或者搜索一些黑客教程 基本都会看到文件上传漏洞. 它是一个很经典的漏洞 但它本质其实不是一个漏洞,而是网站本身的上传文件功能 不过如果我们上传了Webshell,那么就成为了文 ...

随机推荐

  1. MATLAB 常用形态学操作函数

    常用形态学操作函数(转自:http://blog.sina.com.cn/s/blog_4c52e9e20100e5if.html) 1.dilate函数 该函数能够实现二值图像的膨胀操作,有以下形式 ...

  2. MySql 到 SQL Server(MSSQL)

    我用 MySql 2年了,一直都是 asp.net + MySql 开发 为什么不用 MSSQL呢? 原因 : 在我的国家,几乎找不到任何一间托管公司有提供 SQL SERVER 的,有的话也是 20 ...

  3. 基础 ADO.NET 访问MYSQL 与 MSSQL 数据库例子

    虽然实际开发时都是用 Entity 了,但是基础还是要掌握和复习的 ^^ //set connection string, server,database,username,password MySq ...

  4. HDOJ 1390 Binary Numbers(进制问题)

    Problem Description Given a positive integer n, find the positions of all 1's in its binary represen ...

  5. zookeeper[3] zookeeper API开发注意事项总结

    如下是根据官方接口文档(http://zookeeper.apache.org/doc/r3.4.1/api/org/apache/zookeeper/ZooKeeper.html#register( ...

  6. 常用的MIME类型(资源的媒体类型)

    后缀名 MIME名称 *.3gpp audio/3gpp, video/3gpp *.ac3 audio/ac3 *.asf allpication/vnd.ms-asf *.au audio/bas ...

  7. css样式-表格优化

    1.表格的初步优化 index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu ...

  8. javadoc简介

    Javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类.方法.成员等注释形成一个和源代码配套的API帮助文档.也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Java ...

  9. UserManageSys

    JSP部分: err.jsp <%@ page language="java" import="java.util.*" pageEncoding=&qu ...

  10. WebMagic的设计参考了业界最优秀的爬虫Scrapy

    http://webmagic.io/docs/zh/posts/ch1-overview/thinking.html https://github.com/psvehla/liferay-sprin ...