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

举报
穆雄雄 发表于 2022/12/17 11:45:52 2022/12/17
【摘要】 ​      在上一篇中给大家列出的单个文件的上传,那么这一篇咱们讲讲上传多个文件改怎么作呢?由于过程和上传单个文件的类似,所以在这里不细说,相信大家都能看懂,看不懂的可以在评论区留言,我看到之后会及时回复的!!    咱们开门见山的来吧1.创建个jsp表单页面,主要就是上传多个文件: <body> <s:form action="upload.action" meth...

 
     在上一篇中给大家列出的单个文件的上传,那么这一篇咱们讲讲上传多个文件改怎么作呢?由于过程和上传单个文件的类似,所以在这里不细说,相信大家都能看懂,看不懂的可以在评论区留言,我看到之后会及时回复的!!

    咱们开门见山的来吧

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。