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了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle执行runstats,oracle runstats工具

------以sys登录进行授权 grant select on sys.v_$timer to suk; grant select on v_$mystat to suk; grant select on sys.v_$statname to suk; grant select on sys.v_$latch to suk;------This is the test harness I use to try out different ideas. It shows two vital s…

java通过poi读取excel中的日期类型数据或自定义类型日期

java通过poi读取excel中的日期类型数据或自定义类型日期 Java 读取Excel表格日期类型数据的时候&#xff0c;读出来的是这样的 12-十月-2019&#xff0c;而Excel中输入的是 2019/10/12 或 2019-10-12 poi处理excel时&#xff0c;当excel没有明确指明是哪个类型的数据时&…

Struts文件上传与下载详解_文件的下载

在 两篇我们主要说的是文件的上传&#xff0c;既然有上传那就有下载&#xff0c;那么咱们看一下struts里面是怎么个下载法&#xff01; 1.写个文件下载的表单页面&#xff1a; <a href"downLoad.action?fileName1111.jpg">下载文件</a>很简单的我们写一…

Java IO: File

转载自 Java IO: File译文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) Java IO API中的FIle类可以让你访问底层文件系统&#xff0c;通过File类&#xff0c;你可以做到以下几点&#xff1a; 检测文件是否存在读取文件长度重命名或移动文件删除文件检测某个路…

java计算出生到现在经历了多少天

总是不知道自己现在几岁了&#xff0c;这个程序帮你解决 package com.kuang.demo07; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner;public class demo {public static void main(String[] args) th…

微软的FreeBSD社区推广活动 北京站,你没看错!微软现在是一家名副其实的开源公司

自2012年开始&#xff0c;微软云计算与企业事业部和Citrix思杰&#xff0c;NetApp达成合作&#xff0c;共同开发出第一版针对Hyper-V虚拟设备驱动以及相关的用户态程序&#xff0c;并将此称之为集成服务 (Integration Service) 。微软也紧密地和FreeBSD社区合作&#xff0c;所有…

别羡慕别人的舒服,静下心来坚持奋斗!!!

通常给家里打电话的时候是晚上23点之后&#xff0c;因为家里也知道我这边忙&#xff0c;我也知道家里23点之前也在忙&#xff0c;所以选择在23点之后和家里联系联系&#xff0c;聊聊家常。自从到济南3年之久&#xff0c;即使在忙也每隔3-5天就给家里通一次电话&#xff0c;每次…

粉虫螨过敏性鼻炎

https://zhidao.baidu.com/question/1452443485981809220.html 粉虫螨过敏引起鼻炎&#xff0c;咽炎.怎么办 2018-01-04 螨虫过敏分很多症状&#xff0c;常见的有皮肤过敏和呼吸道过敏两类&#xff1a; 这个作者写的非常的正确 一、皮肤过敏&#xff1a;主要…

Linux ss命令 报错,ECS Linux中ss命令显示连接状态的使用说明

1. ss命令可用来获取socket统计信息&#xff0c;这个命令输出的结果类似于netstat输出的内容&#xff0c;但是它能够显示更多更详细的TCP连接状态的信息&#xff0c;且比netstat更快更高效。ss命令能够从内核空间直接得到信息&#xff0c;netstat命令读取各种/proc 文件收集信息…

Asp.Net Core 通过中间件防止图片盗链

一、原理 要实现防盗链&#xff0c;我们就必须先理解盗链的实现原理&#xff0c;提到防盗链的实现原理就不得不从HTTP协议说起&#xff0c;在HTTP协议中&#xff0c;有一个表头字段叫referer&#xff0c;采用URL的格式来表示从哪儿链接到当前的网页或文件。换句话说&#xff0c…

Java IO: 并发IO

转载自 Java IO: 并发IO译文链接 作者: Jakob Jenkov 译者: 李璟 有时候你可能需要并发地处理输入和输出。换句话说&#xff0c;你可能有超过一个线程处理输入和产生输出。比如&#xff0c;你有一个程序需要处理磁盘上的大量文件&#xff0c;这个任务可以通过并发操作提高性能…

Ajax基本案例详解之$.ajax的实现

最近在学Ajax&#xff0c;现在来分享一下基本ajax案例&#xff1a; 先来说说$.ajax的情况&#xff1a; 首先我们先来创建个index.jsp&#xff0c;在index.jsp里面我们写一个<script>标签&#xff0c;主要是引用jquery的环境&#xff0c;没有的童鞋可以来这里下载一下。 …

linux软件可以在所有发行版运行吗,Linux通用的跨发行版的3大软件包管理器

前言本文主要介绍Linux系统上通用的跨发行版的3大软件包管理器。Linux系统上的软件包管理可能非常令人困惑&#xff0c;尤其是对于新手&#xff0c;因为不同的Linux发行版使用不同的包管理系统。在大多数情况下&#xff0c;最令人困惑的部分是软件包依赖项的解析和管理。例如&a…

Java IO: 管道

转载自 Java IO: 管道 译文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) Java IO中的管道为运行在同一个JVM中的两个线程提供了通信的能力。所以管道也可以作为数据源以及目标媒介。 你不能利用管道与不同的JVM中的线程通信(不同的进程)。在概念上&#xf…

springboot yml里面配置list 日期日期格式的postMen 发送json

Value("#{${ipWhiteList.ips}.split(,)}") List<String> ipList; ipWhiteList:ips: 10.0.0.2,127.0.0.1日期个是的postMen 发送json { "multiple": 39, "tenantNo": 39, "endCheckNum": 39, "meterNo&qu…

Ajax基本案例详解之$.get的实现

前面我已经写过一篇ajax的$.ajax的实现了&#xff0c;其中html&#xff0c;css&#xff0c;doindex.jsp里面已经详细列出来了&#xff0c;这篇主要写的是$.get()的实现&#xff0c;其中html&#xff0c;css&#xff0c;doindex.jsp都和Ajax基本案例详解之$.get的实现 里面的…

Java IO: 文件

转载自 Java IO: 文件 译文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) 在Java应用程序中&#xff0c;文件是一种常用的数据源或者存储数据的媒介。所以这一小节将会对Java中文件的使用做一个简短的概述。这篇文章不会对每一个技术细节都做出解释&#xf…

SpringBoot运行原理初探

运行原理初探 其中它主要是依赖一个父项目&#xff0c;主要是管理项目的资源过滤及插件&#xff01; <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE&…

一款全新的基于IntelliJ和ReSharper的跨平台.NET IDE

JetBrains Rider在今年一月份露面&#xff0c;后来的大部分时间被用在了内部早期预览版上&#xff0c;还没有为公开发布做好准备。而现在&#xff0c;我们可以下载早期预览版&#xff0c;并感受在IntelliJ平台上开发.NET是一种什么体验。早期预览版还存在一些问题&#xff0c;不…