文件下载

 

图片文件下载 io

1. 新建一个web工程  ,创建download.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>download.jsp</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
  </head>
  
  <body>
       <h1>文件下载</h1>
     <a href="download?picname=tu1">下载图片1</a>
     <a href="download?picname=tu2">下载图片2</a>
 
  </body>

</html>

2.导入struts2-core-2.3.31.jar包 ,创建一个JavaBean,名为DownloadAction.java,可以继承ActionSupport,代码如下:

 

package com.wow.web;

import java.io.File;
import java.io.InputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class DownloadAction extends ActionSupport{
private static final long serialVersionUID = 1L;

private String picname;//图片名称
private InputStream inputStream;//下载的文件流
    public String execute(){
    String  allpath="\\WEB-INF\\upload"+File.separator+picname+".jpg";
    
   System.out.println( allpath);
    
   return SUCCESS;
    }
    
    public InputStream getInputStream() {
    
   //下载路径
    String  allpath="\\WEB-INF\\upload"+File.separator+picname+".jpg";
   
   //获取图片
    inputStream=ServletActionContext.getServletContext().getResourceAsStream(allpath);

return inputStream;
}

public String getPicname() {
return picname;
}
public void setPicname(String picname) {
this.picname = picname;
}

public void setInputStream(InputStream inputStream) {
this.inputStream = inputStream;
}

}

3.把图片存放到以下路径,项目工程里:/Struts2_10/WebRoot/WEB-INF/upload/tu1.jpg


4.配置struts.xml

<struts>

  <package>

     <action name="down">
        <result>/WEB-INF/download.jsp</result>
    </action>

     <action name="download" class="com.wow.web.DownloadAction">
       <!-- 提供内容给用户下载 -->
       <result name="success" type="stream">
           <!-- 下载的文件类型 -->
           <param name="contentType">image/jpeg</param>
           <!-- 下载的文件流 -->

                    <!-- 要对应DownloadAction.java中 inputStream属性 -->
           <param name="inputName">inputStream</param> 

           <!-- attachment:下载时提示以后保存到某个位置
                inline:直接下载
                filename:保存的文件名称
                ${picname}:OGNL 表达式
            -->
           <param name="contentDisposition">attachment;filename=${picname}.jpg</param>
           
           <!-- 缓冲区大小   2097152  =   2M-->
           <param name="bufferSize">2097152</param>
       </result>
       
    </action>

   </package>
  
</struts>

5.     运行       访问   127.0.0.1:8080/Struts2/down  

    点击   下载图片1 或2 会弹出一个框 ,  选择要下载的位置

     

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值