struts2 文件流, 文件输出到浏览器 文件下载

lift off工艺为什么常用蒸发的方式镀膜? 电子束蒸发中,蒸发物质从源头直接升华并沿直线路径沉积到晶圆上,它可以避免金属在掩模侧壁的覆盖,只在表面进行沉积。在镀膜结束后,在进行光刻胶剥离时,去胶液无法与光刻胶接触反应,导致光刻胶剥离很困难。欢迎加入我的半导体制造知识星球社区,目前社区有1900人左右。我观察到晶圆厂中lift off工艺,镀膜都是用的电子束蒸发的方式,很少有用磁控溅射的方式,为什么?需要增加撕胶工序,将胶面上覆盖的膜层撕掉,使光刻胶露出,这样才容易剥离。上图为磁控溅射的膜层截面图,去胶液很难突破侧壁膜层,进行反应。 阅读详情

众所周知,直接在页面中插入a标签引入文件地址可以解决,但是这样即暴露了项目路径而且再某些情况下会有一些小问题,最好的办法是用I/O流,

(readlinne方式),今天我记录的是struts2中的文件输入输出框架的用法:

 

struts.xml配置文件片段:

 

<result name="download" type="stream">
                   <!-- 下载文件类型 -->
                   <param name="contentType">text/plain</param>
                   <!-- 下载对话框所弹出的文件名 -->
                   <param name="contentDisposition">
                    attachment;fileName=${currentLogName}
                   </param>
                   <!-- 下载的InputStream流,Struts2自己动对应Action中的getDownloadFile方法,该方法必须返回InputStream 类型 -->
               <param name="inputName">downloadFile</param>
           </result>
           <result name="operate">${nextPage}</result>
           <!-- result的Type必须为stream -->
           <result name="displayLog" type="stream">
                   <!-- 下载文件类型 -->
                   <param name="contentType">text/plain</param>
                   <!-- 下载对话框所弹出的文件名 -->
                   <param name="contentDisposition">
                    fileName=${currentLogName}
                   </param>
                   <!-- 下载的InputStream流,Struts2自己动对应Action中的getDownloadFile方法,该方法必须返回InputStream 类型 -->
               <param name="inputName">displayLog</param>
           </result>

 

注意1: contentDisposition 参数控制在浏览器中显示文件名等, attachment;指明文件以附件形式存在,即点link时会有一个提示框提示下载还是打开, 如果不配置attachment,那么默认是inline的,即浏览器会尝试直接打开文件. 其它参数用法直接看注释吧.

 

JAVA代码片段:

 

public String download(){
        System.out.println("download Log action requested!");
        return "download";
    }

public InputStream getDownloadFile() {
           ResourceBundle resource = ResourceBundle.getBundle("voicefileInfo");
           this.setLogDir(resource.getString("LogPath"));
           String tempfile;


           tempfile = resource.getString("LogDir").concat(this.getCurrentLogName());
          
           System.out.println("getDownloadFile()===>" + tempfile);
          
           return ServletActionContext.getServletContext().getResourceAsStream("/"+tempfile);
    }

 

    public String displayLog(){
        System.out.println("Display Log action requested!");
        return "displayLog";
    }

public InputStream getDisplayLog() {
           ResourceBundle resource = ResourceBundle.getBundle("voicefileInfo");
           this.setLogDir(resource.getString("LogPath"));
       
           String tempfile;

           tempfile = resource.getString("LogDir").concat(this.getCurrentLogName());
          
           System.out.println("getDownloadFile()===>" + tempfile);
          
           return ServletActionContext.getServletContext().getResourceAsStream("/"+tempfile);
    }

 

意外小插曲: java 流中的方法getResourceAsStream("...")只支持相对路径,不识别绝对路径...

游戏开发-GM系统的设计 游戏管理员(gm)作为游戏中拥有更高权限的账号,在游戏开发的过程中,我们需要很早的将gm系统做出来,作为测试游戏逻辑具有不可替代的作用。 内容目录 服务端与客户端通讯基本流程 gm命令格式设计 gm系统的实现 服务端与客户端通讯基本流程 服务端与客户端通信,如果基本的网络框架搭建完成,那么我们只需要好命令就可以了 服务器完成一条命令的添加需要3个过程。 (1)命令格式的定义 阅读详情

相关推荐

【YOLOv8-pose姿态识别部署至RK3588:模型训练到RKNN落地,让人体姿态分析精度与边缘推理速度双突破】

本教程从YOLOv8-pose模型的姿态识别训练,到RK3588的边缘量化部署,为你打造了一套“高精度+高实时性+低成本”的人体姿态分析解决方案。无论是健身动作纠正、智能安防行为检测,还是工业人员姿态监控,这套技术都能直接复用——你只需替换数据集与业务逻辑,即可快速落地专属的边缘AI姿态识别系统。如果你在实践中遇到任何卡点,欢迎随时交流。记住,人体姿态识别的价值在于“关键点准、推理快、部署易”,而这三者的平衡,正是你通过本教程能掌握的核心能力。

FJN110的博客 298

java下载指定文件返回给前端返回文件

在Java开发中,有时候我们需要实现文件下载功能,并且将文件以流的形式返回给前端。这种方式可以避免在服务器端生成临时文件,提高系统的运行效率。接下来,我将介绍实现这个功能的步骤。通过以上的步骤和示例代码,我们可以实现Java下载返回文件流的功能。首先,我们需要设置响应的Header参数,然后读取文件内容并将其转换为字节数组。接下来,设置文件的MIME类型和响应的Content-Disposition头部信息。最后,将字节数组入响应的输出流,并关闭输出流。

Java_CHUXUEZhe19的博客 4194

用 ABAP EML 驾驭 RAP 业务对象:从事务缓冲区到落库提交的一条龙实践

摘要:ABAP EML(Entity Manipulation Language)是SAP RAP框架的核心语言能力,为ABAP开发者提供强类型、批处理友好的方式操作RAP业务对象。EML通过事务缓冲区管理数据变更,支持读取(READ ENTITIES)、修改(MODIFY ENTITIES)及事务控制(COMMIT/ROLLBACK ENTITIES)。其特点包括:基于BDEF派生类型确保类型安全,%control和%cid等特殊字段实现精细控制,统一的消息模型便于错误处理。相比传统ABAP数据访问方式,

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 932

struts 2返回Excel文件流浏览器

很多时候,系统生成了Excel文件需要供浏览器客户端下载,这个时候我们需要在struts.xml文件中配置一种返回类型为type=”stream”。exam: <result name=”export” type=”stream”><param name=”contentType”>application/vnd.ms-excel</param><par...

weixin_30273175的博客 240

Struts2实现文件上传和下载

Struts2实现文件上传    文件上传是web应用里面常用的功能,在网页上传照片、使用在线OA传递文档至服务器等。大家应该学过JSP中关于Apache下面的commons子项目的FileUpload组件来实现文件上传的功能。那么在struts2是如何实现文件上传的,实际上我们前面刚刚讲过,上传功能在Struts2的框架中已经定义好了专用拦截器,并且已经配置到了默认的执行功能中。我们只需要在程序...

完善者的博客 321

如何在StrutsAction中直接使用POI生成Excel并下载

 前段时间需要做一个导出Excel的功能,用的POI,以前我的做法是模仿前人的代码,在Servlet中生成需要导出的Excel,然后调用workbook.write(out)将生成的Excel文件流入到OutputStream out中去,其中out是由response.getOutputStream()得到的,当然一般我们都会OutputStream out = new Buffered

u012265889的专栏 1021

使用struts实现文件上传与下载

自己的理解:第一种方法 : 对于用自己实现的文件上传或者下载,首先要通过流来获得文件的信息,然后通过操作将文件保存到一个文件夹中,再通过设置响应头和拿到输出流对象的方法来实现文件下载第二种方法: strtus实现了数据的自动封装,只需要将获得文件表单的inputStream到XML文件中,再用get或者set方法来进行一些变量的配置,就能够进行文件的上传和下载Action部分的BaseACti...

二丑的博客 229

Struts 2 完成直接输出流到浏览器

Struts 2 完成直接输出流到浏览器 2008年10月17日 星期五 上午 10:30 // 告诉Struts 执行完 Action 就行了,不用再去调用结果响应的操作ActionContext.getContext().getActionInvocation().getProxy().setExecuteResult(false); // 取得 HttpServletResp...

微尘的世界 360

Struts2文件下载(全)

利用Struts2来处理文件下载的问题时,能够解决下载文件文件名为中英文等,都不出现乱码。此外,还能够在用户下载之前进行检查,判断用户是否有足够的权限来下载文件等。下面用一个示例来讲解文件下载: 注意:在处理文件时候尽量不使用特殊字符,路径和文件夹使用英文,文件名可以使用中文、空格、括号,不使用+、¥、%等特殊字符,这个在文件的上传(源头)时候就进行限制,避免在代码中进行处理这些特殊字符...

荒的博客 7647

Struts2框架之文件下载

在上一篇博客 Struts2框架之文件上传 介绍了在struts框架中如何进行文件上传,下面将介绍如何使用struts框架进行文件下载。 在不使用struts框架时,我们也可以通过servlet进行文件下载(参考:Java Web通过Servlet实现文件下载)。这种方式我们还需要进行文件流操作,而使用struts框架后,这些操作都可以有框架操作。 第1步:创建download动作。 packa...

hestyle的博客 962

Struts2文件下载

文件上传链接: 1)Servlet 文件上传 ————  点击打开链接 2Struts2 文件上传 ———— 点击打开链接 文件下载是一个很常见的功能,用struts2实现文件下载的步骤: 一)定义一个Action类,FileDownload.java package com.struts2.filedownload; import java.

Super的专栏 9万+

struts2实现下载各种文件

1、struts.xml&lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"&

xqhys的博客 2417

Struts2下载文件中文乱码和IE空格处理

Struts2下载文件中文乱码和IE空格处理

未知空间 707

Struts2实现文件下载功能

最近项目中需要做一个开发平台,第一个功能就是实现文档对外提供下载功能,项目中用到的是Struts2框架,因此了一个简单的ACTION在此记录学习。 首先需要新建一个ACTION: import ins.framework.web.Struts2Action; import org.apache.commons.codec.binary.Base64; import java.io.File

tanyunlong_nice的专栏 2071

java之struts2文件下载

1.在实际应用开发中,文件下载功能也非常常见。 2.最简单的文件下载方式是通过超链接来进行文件下载: <body> <a href="download/s.txt">课件</a><br/> <a href="download/t.jpg">美女</a><br/> &l...

weixin_30768661的博客 267

Struts2文件下载

重要核心:1,Action类中提供三个字段,InputStream targetName:用户获取输入流,从服务器读取文件String fileType:获取文件类型;String fileName:获取文件名,                2,在struts.xml文件中result的type属性设置为stream,表示通知浏览器下载的方式打开这个文件。并给这个result设置参数,分别

您已进入防沉迷系统... 1015

struts2实现文件下载出现的乱码解决

Struts2下载文件实现的说明   contentType   内容类型,和互联网MIME标准中的规定类型一致,例如text/plain代表纯文本,text/xml表示XML,image/gif代表GIF图片,image/jpeg代表JPG图片   inputName

爱是一种信仰 2639

struts2文件下载

struts2文件下载不需要链接到另一个jsp页面,故只需要一个超链接和一个处理文件下载action类即可。 下面来看struts2文件下载的具体步骤和细节。 这是一个jsp页面的超链接,负责链接到服务器的文件流。 Down Load 在看action类的内容前有必要了解一下struts2文件下载的几个相关的文件属性 contentType     【结果类型】 默认值是  d

mxf_main的专栏 691

struts2 文件下载

0.struts2文件下载 >文件下载只要将action返回的视图类型修改为stream就可以了 image/gif inputStream filename="struts.gif" 4096 //contentType-发送给web浏览器的字节流镜像类型(默认为

zyb243380456的专栏 2994

Struts2文件上传和文件下载

第四节:多文件上传 第五节:Struts2 文件下载 返回的是文件流 <param name="contentDisposition">attachment;filename=${fileName}</param> InputStream getInputStream() 项目结构: 多个文件上传action com.cy.action.Fi...

qq_40135955的博客 296

Struts2.0下载文件流

<br />引用:http://tailsherry.javaeye.com/blog/178351<br /> <br />在实际web应用中,大部分文件下载都是通过url文件链接直接下载的,同样在Struts中也可以这样实现。但是考虑到盗链,跨服务器访问等因素,直接文件流下载也是必要的。那么,在Struts2.0中如何实现数据流下载呢?<br /><br />Struts2.0默认支持多种格式的result type,stream即是其中的一种。如果我这里要实现一个Generate Report的功能,

在JAVA的世界中“乘风破浪” 2220

松江3208、9000系列消防主机调试软件.zip

适合松江消防主机调试人员,维保人员 有连接消防主机教程

物理机windows与虚拟机linux之间的文件交换方法.pdf

物理机windows与虚拟机linux之间的文件交换方法.pdf

上一篇: java struts2 获取项目路径
下一篇: frameset, iframe, frame框架页面出现横向滚动条bug的隐藏方法
ctrl_shift_del
博客等级 码龄16年 6粉丝 7原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值