struts2文件的上传与下载

 <struts>
 
 <constant name="struts.custom.i18n.resources" value="message"></constant>
 
 <constant name="struts.i18n.encoding" value="gbk"></constant>
 
 <constant name="struts.multipart.saveDir" value="c:/"></constant>
 
 <package name="struts2" extends="struts-default">

 

<action name="upload" class="com.test.action.UploadAction">
   <result name="success">/uploadResult.jsp</result>
   <result name="input">/upload.jsp</result>
   <interceptor-ref name="fileUpload">
    <param name="maximumSize">409600</param>
    <param name="allowedTypes">application/vnd.ms-powerpoint</param>
   </interceptor-ref>
   <interceptor-ref name="defaultStack"></interceptor-ref>
  </action>
  
  <action name="download" class="com.test.action.DownloadAction">
   <result name="success" type="stream">
    <param name="contentType">application/vnd.ms-powerpoint</param>
    <param name="contentDisposition">filename="Struts2.ppt"</param>
    <param name="inputName">downloadFile</param>
   </result>
  </action>

</package>

</struts>

 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport
{
 private String username;

 private String password;

 private List<File> file;

 private List<String> fileFileName;

 private List<String> fileContentType;

 public String getUsername()
 {
  return username;
 }

 public void setUsername(String username)
 {
  this.username = username;
 }

 public String getPassword()
 {
  return password;
 }

 public void setPassword(String password)
 {
  this.password = password;
 }

 public List<File> getFile()
 {
  return file;
 }

 public void setFile(List<File> file)
 {
  this.file = file;
 }

 public List<String> getFileFileName()
 {
  return fileFileName;
 }

 public void setFileFileName(List<String> fileFileName)
 {
  this.fileFileName = fileFileName;
 }

 public List<String> getFileContentType()
 {
  return fileContentType;
 }

 public void setFileContentType(List<String> fileContentType)
 {
  this.fileContentType = fileContentType;
 }

 @Override
 public String execute() throws Exception
 {
  for (int i = 0; i < file.size(); ++i)
  {
   InputStream is = new FileInputStream(file.get(i));

   String root = ServletActionContext.getRequest().getRealPath(
     "/upload");

   File destFile = new File(root, this.getFileFileName().get(i));

   OutputStream os = new FileOutputStream(destFile);

   byte[] buffer = new byte[400];

   int length = 0;

   while ((length = is.read(buffer)) > 0)
   {
    os.write(buffer, 0, length);
   }

   is.close();

   os.close();
  }

  return SUCCESS;

 }

}

 

package com.test.action;

import java.io.InputStream;

import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class DownloadAction extends ActionSupport
{
 public InputStream getDownloadFile()
 {
  return ServletActionContext.getServletContext().getResourceAsStream(
    "/upload/Struts2.ppt");
 }
 
 @Override
 public String execute() throws Exception
 {
  return SUCCESS;
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值