收藏 分销(赏)

基于Struts2的文件上传机制.doc

上传人:pc****0 文档编号:6559129 上传时间:2024-12-13 格式:DOC 页数:8 大小:258.50KB 下载积分:10 金币
下载 相关 举报
基于Struts2的文件上传机制.doc_第1页
第1页 / 共8页
基于Struts2的文件上传机制.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
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"中修改,代码如下: <constant name="struts.multipart.paeser" value="cos"></constant> 二是在struts.properties中修改,代码如下:   sruts.multipart.parser=cos   二、实现文件上传的Action   创建表单:upload.jsp        <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> Jsp代码   1. <%    2. String path = request.getContextPath();    3. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";    4. %>    5.    6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">    7. <html>    8.   <head>    9.     <base href="<%=basePath%>">    10.         11.     <title>Struts2文件上传</title>    12.         13.     <meta http-equiv="pragma" content="no-cache">    14.     <meta http-equiv="cache-control" content="no-cache">    15.     <meta http-equiv="expires" content="0">        16.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    17.     <meta http-equiv="description" content="This is my page">    18.     <!--    19.     <link rel="stylesheet" type="text/css" href="styles.css">    20.     -->    21.    22.   </head>    23.       24.   <body>    25.    <center>    26.     <h1>Struts 2完成上传</h1>    27.       <form action="upload.action" method="post" enctype="multipart/form-data">    28.         <table>    29.             <tr>    30.                 <td>用户名:</td>    31.                 <td><input type="text" name="username" ></td>    32.             </tr>    33.             <tr>    34.                 <td>上传文件:</td>    35.                 <td><input type="file" name="myFile"></td>    36.             </tr>    37.             <tr>    38.                 <td><input type="submit" value="上传"></td>    39.                 <td><input type="reset"></td>    40.             </tr>    41.         </table>    42.       </form>    43.   </center>    44.   </body>    45. </html>   <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>Struts2文件上传</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <center> <h1>Struts 2完成上传</h1> <form action="upload.action" method="post" enctype="multipart/form-data"> <table> <tr> <td>用户名:</td> <td><input type="text" name="username" ></td> </tr> <tr> <td>上传文件:</td> <td><input type="file" name="myFile"></td> </tr> <tr> <td><input type="submit" value="上传"></td> <td><input type="reset"></td> </tr> </table> </form> </center> </body> </html>   完成上传Action package net.hncu.struts2.action; Java代码   1. import java.io.File;    2. import java.io.FileInputStream;    3. import java.io.FileOutputStream;    4. import java.io.InputStream;    5. import java.io.OutputStream;    6.    7. import org.apache.struts2.ServletActionContext;    8.    9. import com.opensymphony.xwork2.ActionSupport;    10.    11. public class UploadAction extends ActionSupport {    12.     // username属性用来封装用户名    13.     private String username;    14.         15.     // myFile属性用来封装上传的文件    16.     private File myFile;    17.         18.     // myFileContentType属性用来封装上传文件的类型    19.     private String myFileContentType;    20.    21.     // myFileFileName属性用来封装上传文件的文件名    22.     private String myFileFileName;    23.    24.         25.     //获得username值    26.     public String getUsername() {    27.         return username;    28.     }    29.    30.     //设置username值    31.     public void setUsername(String username) {    32.         this.username = username;    33.     }    34.    35.     //获得myFile值    36.     public File getMyFile() {    37.         return myFile;    38.     }    39.    40.     //设置myFile值    41.     public void setMyFile(File myFile) {    42.         this.myFile = myFile;    43.     }    44.    45.     //获得myFileContentType值    46.     public String getMyFileContentType() {    47.         return myFileContentType;    48.     }    49.    50.     //设置myFileContentType值    51.     public void setMyFileContentType(String myFileContentType) {    52.         this.myFileContentType = myFileContentType;    53.     }    54.    55.     //获得myFileFileName值    56.     public String getMyFileFileName() {    57.         return myFileFileName;    58.     }    59.    60.     //设置myFileFileName值    61.     public void setMyFileFileName(String myFileFileName) {    62.         this.myFileFileName = myFileFileName;    63.     }    64.    65.     public String execute() throws Exception {    66.             67.         //基于myFile创建一个文件输入流    68.         InputStream is = new FileInputStream(myFile);    69.             70.         // 设置上传文件目录    71.         String uploadPath = ServletActionContext.getServletContext()    72.                 .getRealPath("/upload");    73.             74.         // 设置目标文件    75.         File toFile = new File(uploadPath, this.getMyFileFileName());    76.             77.         // 创建一个输出流    78.         OutputStream os = new FileOutputStream(toFile);    79.    80.         //设置缓存    81.         byte[] buffer = new byte[1024];    82.    83.         int length = 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.         return SUCCESS;    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 byte[1024]; int length = 0; //读取myFile文件输出到toFile文件中 while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, length); } System.out.println("上传用户"+username); System.out.println("上传文件名"+myFileFileName); System.out.println("上传文件类型"+myFileContentType); //关闭输入流 is.close(); //关闭输出流 os.close(); return SUCCESS; } }   配置上传Action    <?xml version="1.0" encoding="UTF-8" ?> Java代码   1. <!DOCTYPE struts PUBLIC    2.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   3.     "http://struts.apache.org/dtds/struts-2.0.dtd">    4. <struts>    5.    6.     <package name="struts2" extends="struts-default">    7.         <action name="upload" class="net.hncu.struts2.action.UploadAction">    8.             <result name="success">/result.jsp</result>    9.             <result name="input">/upload.jsp</result>    10.         </action>    11.     </package>    12.    13.     <!-- Add packages here -->    14.    15. </struts>   测试页面:    
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服