Struts2的上传(基本流程例如以下)

1、Struts2默认採用了apache commons-fileupload

2、Struts2支持三种类型的上传组件

3、须要引入commons-fileupload相关依赖包
* commons-io-1.3.2.jar
* commons-fileupload-1.2.1.jar

4、表单中须要採用POST提交方式,编码类型须要使用:multipart/form-data

5、Struts2的Action
取得文件名->>规则:输入域的名称+固定字符串FileName
取得文件数据->>规则:File 输入域的名称
取得内容类型->>规则:输入域的名称+固定字符串ContentType

6、得到输入流。採用输出流写文件

①.首先导入对应的jar包。然后我们建立一个index.jsp页面。

<%@ page language="java" contentType="text/html; charset=GB18030"pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body><form action="upload.action" method="post" enctype="multipart/form-data"> 标题:<input type="text" name="title"><br>文件:<input type="file" name="myFile"><br><input type="submit" value="上传"></form>
</body>
</html>

②然后我们须要一个Action来处理上传,代码例如以下:

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;import com.opensymphony.xwork2.Action;public class UploadTestAction {private String title;//能够得到上传文件的名称//规则:输入域的名称+固定字符串FileNameprivate String myFileFileName;//取得文件数据//规则:File 输入域的名称private File myFile; //    //取得内容类型
//  //规则:输入域的名称+固定字符串ContentTypeprivate String myFileContentType;public String getMyFileFileName() {return myFileFileName;}public void setMyFileFileName(String myFileFileName) {this.myFileFileName = myFileFileName;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public File getMyFile() {return myFile;}public void setMyFile(File myFile) {this.myFile = myFile;}public String getMyFileContentType() {return myFileContentType;}public void setMyFileContentType(String myFileContentType) {this.myFileContentType = myFileContentType;}public String execute() throws Exception {InputStream is = null;OutputStream os = null;try {is = new BufferedInputStream(new FileInputStream(myFile));os = new BufferedOutputStream(new FileOutputStream("D:\\" + myFileFileName));byte[] buffer = new byte[1024];int len = 0;while ((len = is.read(buffer)) > 0) {os.write(buffer, 0, len);}}finally {if (is != null) {is.close();}if (os != null) {os.close();}}return Action.SUCCESS;}
}

③Action写完以后再到struts2的配置文件配置一下代码例如以下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><!-- 当struts.xml配置文件发生改动。会立马载入。在生产环境下最好不要配置 --><constant name="struts.configuration.xml.reload" value="true"/>              
        <constant name="struts.multipart.saveDir" value="绝对路径"></constant><!-- 会提供更加友好的提示信息 --><constant name="struts.devMode" value="true"/><!-- 须要继承struts-default包,这样就拥有的最主要的功能 --><package name="upload-package" extends="struts-default"><action name="upload" class="com.csu.struts2.UploadTestAction"><result>/success.jsp</result></action></package>
</struts>

OK!至此就能够上传文件了。

转载于:https://www.cnblogs.com/yangykaifa/p/6884317.html

struts2的文件上传机制相关推荐

  1. struts2的文件上传和文件下载

    实现使用Struts2文件上传和文件下载: 注意点: (1)对应表单的file1和私有成员变量的名称必须一致 <input type="file" name="fi ...

  2. Struts2之文件上传(单文件/多文件)

    <一>简述: Struts2的文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置,<interceptor name="fileUp ...

  3. Struts2的文件上传

    基于Struts2的文件上传 struts2文件上传 转载于:https://www.cnblogs.com/passer1991/archive/2012/11/15/2771135.html

  4. java文件上传过滤,struts2中文件上传过滤

    手动实现文件过滤 大部分时候,Web应用不允许浏览者自由上传,尤其不能允许上传可执行性文件--因为可能是病毒程序.通常,我们可以允许浏览者上传图片,上传压缩文件等:除此之外,还必须对浏览者上传的文件大 ...

  5. Struts2实现文件上传与下载

    Struts包+源码下载地址:点击打开链接   ,打不开,复制后面 http://struts.apache.org/download.cgi#struts223  ,历史版本:http://arch ...

  6. Struts2 单个文件上传/多文件上传

    1导入struts2-blank.war所有jar包:\struts-2.3.4\apps\struts2-blank.war 单个文件上传 upload.jsp <s:form action= ...

  7. 基于Struts2的文件上传

    Struts2本身并没提供上传的组件,我们可以通过调用上传框架来实现文件的上传. 一.配置上传解析器 首先要配置项目的框架,也就是倒导入"struts2-core-2.2.1.jar&quo ...

  8. 基于struts2的文件上传下载

    1.struts.xml 1 <struts> 2 <constant name="struts.multipart.maxSize" value="2 ...

  9. 【struts2】文件上传下载—struts2实现

    struts2实现上传下载时要用到的jar包: UploadAction.java(fileupload.action) package com.rczp.action;import java.io. ...

最新文章

  1. PVN3D: 基于Deep Point-wise 3D关键点投票的6D姿态估计网络(香港科技大学提出)
  2. 子图同构问题与Ullmann Algorithm 算法(一)
  3. 仅使用python基本语法、即不使用任何模块、编写_微博可以设置“仅半年内可见”!你竟然还不知道???...
  4. [How TO]-How to Install Python Pip on Ubuntu 20.04
  5. hadoop本地模式部署_hadoop启动模式、基本配置、启动方式
  6. 计算机中丢失vcomp140.dll,Vcomp140.dll文件
  7. linux搜索日志组合条件,find查找
  8. c++ mqtt客户端_MQTT详解及百度物接入连接手机测试(含源码) 秦子帅
  9. PyTorch——torch.Tensor与np.ndarray(NumPy)之间的类型转换
  10. python在linux编程_python要在linux下编程吗
  11. 什么软件测试情侣头像,在线识别情侣头像软件
  12. dnf mysql密码多少_DNF 台服数据库密码加密算法
  13. linux环境(centos7.3)下安装Xilinx FPGA以及烧录算法教程
  14. python偏最小二乘法公式_最小二乘法及其python实现详解
  15. 最热BMS可直接下载!!
  16. 拦截广告的链接(注意软件的广告不拦截,只拦截桌面图标链接)
  17. 太阳计算机音乐,邱振哲《太阳》[FLAC/MP3-320K]
  18. 【面试】小米公司嵌入式职位面试经验
  19. 浅谈用KUSTO查询语言(KQL)在Azure Synapse Analytics(Azure SQL DW)审计某DB账号的操作记录
  20. linux下Local Adress(本地ip:端口)和Foreign Address(外部ip:端口)

热门文章

  1. 来自Riot 的一份游戏美术教程(一):核心原则
  2. Cocos 技术派:实时竞技小游戏技术实现分享
  3. linux配置本地yum源 centos7.9为例
  4. SQL基础【九、Update】
  5. Oracle 中control_file_record_keep_time参数的解释
  6. IMPDP table_exists_action 参数的应用
  7. vSphere 计算vMotion的迁移原理
  8. MySQL Execution Plan--执行计划中的Type列
  9. MySQL-处理重复数据[20180517]
  10. 总结一些java编程题的思路