Struts文件上传与下载详解 _上传多个文件
在上一篇中给大家列出的单个文件的上传,那么这一篇咱们讲讲上传多个文件改怎么作呢?由于过程和上传单个文件的类似,所以在这里不细说,相信大家都能看懂,看不懂的可以在评论区留言,我看到之后会及时回复的!!
咱们开门见山的来吧
1.创建个jsp表单页面,主要就是上传多个文件:
<body><s:form action="upload.action" method="post" enctype="multipart/form-data"><s:textfield name="file" label="标题"/><br/><%-- <s:file name="upload" label="选择文件"/><br/> --%><s:file name="mupload" label="选择文件1"/><br/><s:file name="mupload" label="选择文件2"/><br/><s:file name="mupload" label="选择文件3"/><br/><s:submit name="submit" value="上传文件"/></s:form></body>
2.我们接下来去写一下UploadAction里面:
package org.web;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport {private File[] mupload; //封装上传文件的属性(多个)private String[] muploadContentType; //封装上传文件的类型(多个)private String[] muploadFileName; //封装上传文件的名称(多个)private String msavePath; //获取文件上传的路径(多个)//实现文件的多个上传public String execute() throws IOException{byte[] buffer=new byte[1024];for (int i = 0; i < mupload.length; i++) {//获取物理路径"/upload"String path=ServletActionContext.getServletContext().getRealPath(savePath);FileInputStream fis=new FileInputStream(getMupload()[i]);FileOutputStream fos=new FileOutputStream(path+"/"+getMuploadFileName()[i]);int length=fis.read(buffer);while (length>0) {//每次写入length长度的内容fos.write(buffer,0,length);length=fis.read(buffer);}fis.close();fos.flush();fos.close();}return SUCCESS;}public File[] getMupload() {return mupload;}public void setMupload(File[] mupload) {this.mupload = mupload;}public String[] getMuploadContentType() {return muploadContentType;}public void setMuploadContentType(String[] muploadContentType) {this.muploadContentType = muploadContentType;}public String[] getMuploadFileName() {return muploadFileName;}public void setMuploadFileName(String[] muploadFileName) {this.muploadFileName = muploadFileName;}public String getMsavePath() {return msavePath;}public void setMsavePath(String msavePath) {this.msavePath = msavePath;}}
3.nice,这里面已经搞定,咱们就移步到struts.xml里面配置一下就可以了
<?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><package name="default" namespace="/" extends="struts-default"><!-- 文件上传 --><action name="upload" class="org.web.UploadAction"><param name="savePath">/upload</param><result name="success">/upload_suc.jsp</result></action></package>
</struts>
最后发布运行就OK了。
Struts文件上传与下载详解 _上传多个文件相关推荐
- Struts文件上传与下载详解_上传单个文件
大家都知道Servlet上传文件的时候用的是commons-fileupload插件上传的,但是过程极其的麻烦,同样Struts2也有自带的文件上传,但是过程比Servlet里面的简单了不少,接下来请 ...
- Struts文件上传与下载详解_文件的下载
在 两篇我们主要说的是文件的上传,既然有上传那就有下载,那么咱们看一下struts里面是怎么个下载法! 1.写个文件下载的表单页面: <a href="downLoad.action? ...
- FTP服务器ip地址修改,文件上传和下载详解
FTP服务器搭建FTP服务器搭建详细步骤 - Wc&Yd博客 - CSDN博客 一. ip地址修改. 计算机-管理-服务器和应用程序,绑定点击ip地址即可修改. 编辑修改. 修改完成,需重新启 ...
- nodeJs中间件Multer详解_使用express实现本地文件/图片上传到服务器指定目录
最终实现的效果,更改Input的值后,将图片显示出来.输入描述信息,提交后,图片上传到后台对应的路径下. Multer Multer 是一个node.js中间件,用于处理 multipart/form ...
- java 字符串池 原理_《Java虚拟机原理图解》1.2.2、Class文件中的常量池详解(上)...
注意: 对于某个类而言,其class文件中至少要有两个CONSTANT_Class_info常量池项,用来表示自己的类信息和其父类信息.(除了java.lang.Object类除外,其他的任何类都会默 ...
- 华为荣耀3c语言设置在哪个文件夹,(科普)详解Android系统SD卡各类文件夹名称...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 系统数据类--系统文件存储相关文件夹 1..android_secure:官方app2sd的产物,存储了相关的软件使用认证验证,删除之后SD卡中的软件将无 ...
- hadoop java move_Hadoop上Data Locality的详解
Hadoop上Data Locality的详解 Hadoop上的Data Locality是指数据与Mapper任务运行时数据的距离接近程度(Data Locality in Hadoop refer ...
- java spring mvc 上传_Java Spring MVC 上传下载文件配置及controller方法详解
下载: 1.在spring-mvc中配置(用于100M以下的文件下载) 下载文件代码 @RequestMapping("/file/{name.rp}") public Respo ...
- linux上传文件命令ftp put,Linux ftp 命令行中下载文件get与上传文件put的命令应用详解...
介绍:从本地以用户anok登录的机器192.168.0.16上通过ftp远程登录到192.168.0.6的ftp服务器上,登录用户名是peo.以下为使用该连接做的实验. 查看远程ftp服务器上用户pe ...
最新文章
- 宏基因组实战10. 绘制圈图-Circos安装与使用
- movavi video suite2020中文版
- 我的世界java8_《我的世界》java8 64服务器mod
- 用计算机语言画曲线,用C语言控制台画简单的曲线
- MySQL的4大版本
- github中删除已建仓库(二)
- 什么是路由器交换机?路由器交换机介绍!
- JDK下载与安装、 Eclipse下载与使用、 Tomcat下载与使用、 MySQL安装与使用
- 无限网盘,36个T,360网盘无限空间的申请方法www.credream.com
- Elasticsearch 2.3.0 重建索引
- 酷盘API C# 测试版
- python是干什么用的-使用Python究竟可以做什么?下面是Python的3个主要应用
- java web 题_Java+web考试题预备
- ajax上传文件formData
- magisk卸载内置软件_手机发烧友必备之 Magisk
- 【python】词云图制作
- iOS崩溃日志ips文件解析
- 微信生成带参数二维码以及获取此二维码参数
- 浏览器兼容video视频播放的多种方法
- DVD-Video 解谜 - VOB文件
热门文章
- linux 的网络操作与配置文件,Linux常用文件与网络操作命令速记指南
- bigdecimal 平均数_MapReduce实例-必须用Combine--求平均数
- asp后台调用产品数据_后台产品经理,需掌握这些数据交互知识
- MQ问题集(kafka主从同步与高可用,MQ重复消费、幂等)
- Codeforces Round #622 (Div. 2) D. Happy New Year 状压dp
- AcWing 1303. 斐波那契前 n 项和
- 201609-5 祭坛
- 一般图带权多重匹配(欧拉图+最小费用流)
- [2021-06-19] 提高组新手副本Ⅱ(联网,欧几里得,分解树,开关灯)
- ybtoj洛谷P3268:圆的异或并(扫描线)