[JavaWeb基础] 009.Struts2 上传文件
在web开发中,我们经常遇到要把文件上传下载的功能,这篇文章旨在指导大家完成文件上传功能
1.首先我们需要一个上传文件的页面。
<!--在进行文件上传时,表单提交方式一定要是post的方式,
因为文件上传时二进制文件可能会很大,还有就是enctype属性,
这个属性一定要写成multipart/form-data,
不然就会以二进制文本上传到服务器端
-->
<form action="fileUpload.action" method="post" enctype="multipart/form-data">
用户名: <input type="text" name="username"><br><br>
文件: <input type="file" name="file"><br><br>
<input type="submit" value="提交">
</form>
2.然后我们要配置Struts2文件。
<action name="fileUpload" class="com.babybus.sdteam.action.FileUploadAction">
<result name="success">/Success.jsp</result>
</action>
3.最后我们要有一个Action类来把上传的文件转存到服务器
public String execute() throws Exception
{
// 设置要上传的文件夹目录
String root = ServletActionContext.getServletContext().getRealPath("/upload");
// 根据上传的文件,创建输入流
InputStream is = new FileInputStream(file);
// 输出文件夹
File outfloder = new File(root);
// 输出文件
File outfile = new File(root, fileFileName);
// 目录不存在创建目录
if(!outfloder.exists()){
outfloder.mkdirs();
}
// 文件不存在创建文件
if(!outfile.exists()){
outfile.createNewFile();
}
// 创建输出流
OutputStream os = new FileOutputStream(outfile); // 接受数据用的临时字节数组
byte[] buffer = new byte[500];
int length = 0;
// 遍历把内容写到输出文件中
while(-1 != (length = is.read(buffer, 0, buffer.length)))
{
os.write(buffer);
}
// 关闭输出流,关闭输入流
os.flush();
os.close();
is.close();
// 返回结果跳转标识
return SUCCESS;
}
4.通过以上几步,我们就可以简单的实现了文件上传功能。
结语
- 受益,掌握了Struts2 上传文件

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士)
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4678977.html
[JavaWeb基础] 009.Struts2 上传文件的更多相关文章
- Unable to find ‘struts.multipart.saveDir’ Struts2上传文件错误的解决方法
Unable to find ‘struts.multipart.saveDir’ Struts2上传文件错误的解决方法 在使用struts2的项目中上传文件的时候出现了一个这样的错误: 2011-7 ...
- 利用struts2上传文件时,如果文件名中含有-符号,那么会出错
利用struts2上传文件时,如果文件名中含有-符号,那么会出错 报错如下: HTTP Status 500 - C:\Program Files\Apache Software Foundation ...
- Struts2上传文件(1)
使用Struts框架后, Struts2框架不会处理multipart/form-data的请求,它需要调用其他的上传文件框架来解析二进制数据.但是Struts在原有的上传解析器基础上做了很多的封装, ...
- struts2上传文件添加进度条
给文件上传添加进度条,整了两天终于成功了. 想要添加一个上传的进度条,通过分析,应该是需要不断的去访问服务器,询问上传文件的大小.通过已上传文件的大小, 和上传文件的总长度来评估上传的进度. 实现监听 ...
- 关于Struts2上传文件的最大Size的设置
今天使用Struts2的文件上传控件时,在struts.xml中,将处理上传的action中的fileUpload拦截器的maximumSize参数设置为5000000,上传了一个3M的文件后发现控制 ...
- javaWeb中使用ajax上传文件
javaWeb上传图片 上传文件所必要的两个jar包:commons-fileupload.jar.commons-io.jar. jar包下载:github路径 核心代码: String withP ...
- 菜鸟学SSH(五)——Struts2上传文件
上传文件在一个系统当中是一个很常用的功能,也是一个比较重要的功能.今天我们就一起来学习一下Struts2如何上传文件. 今天讲的上传文件的方式有三种: 1,以字节为单位传输文件: 2,Struts2封 ...
- 工作笔记4.struts2上传文件到server
本文介绍两种:上传文件到server的方式 一种是提交Form表单:还有一种是ajaxfileupload异步上传. 一.JSP中: 1.提交Form表单 为了能完毕文件上传,我们应该将这 ...
- php基础21:上传文件
<?php /* 通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件 第一个参数是表单的 input name,第二个下标可以是 "name" ...
随机推荐
- P2774 方格取数问题 网络流重温
P2774 方格取数问题 这个题目之前写过一次,现在重温还是感觉有点难,可能之前没有理解透彻. 这个题目要求取一定数量的数,并且这些数在方格里面不能相邻,问取完数之后和最大是多少. 这个很好的用了网络 ...
- 一步步打造QQ群发消息群发器
最近为了做公众号号推广,吸粉,然后加了几百个QQ群,感觉QQ群的群发效果还是不错的,一天能捞到100个粉丝左右,好的时候也有200个,少的时候几十个,但是由于太多的群了,手工一个个点击开来群发,几百个 ...
- node.js开发指南系列(1)partial is not defined
ejs视图引擎中使用partial函数: <ul><%- partial('listitem', items) %></ul> 报错:partial is not ...
- [hdu5399 Too Simple]YY
题意:m个{1,2...n}→{1,2...,n}的函数,有些已知有些未知,求对任意i∈{1,2,...,n},f1(f2(...(fm(i)))=i的方案总数,为了方便简记为F(i) 思路:如果存在 ...
- PK,FK, UK,DF, CK
PK 主键 constraint primary key FK 主外键关系 constraint foreign references UK 唯一约束 constraint unique key DF ...
- python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary
#python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...
- 散列表PTA判断
1-1 在散列表中,所谓同义词就是具有相同散列地址的两个元素. (1分) T F 作者 DS课程组 单位 浙江大学 1-2 采用平方探测冲突解决策略(hi(k)=(H(k)+ ...
- 【图机器学习】cs224w Lecture 8 & 9 - 图神经网络 及 深度生成模型
目录 Graph Neural Network Graph Convolutional Network GraphSAGE Graph Attention Network Tips Deep Gene ...
- 学习docker的一点记录
0x00 docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化 ...
- Codeforces1141E(E题)Superhero Battle
A superhero fights with a monster. The battle consists of rounds, each of which lasts exactly nn min ...