国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Jersey 文件下載

2019-11-11 02:13:31
字體:
供稿:網(wǎng)友

Jersey 文件下載

Jersey實(shí)現(xiàn)文件下載有兩種方式,一種是直接將文件作為響應(yīng)體,一種是使用StreamingOutput對(duì)象作為響應(yīng)體。

一、使用文件對(duì)象作為響應(yīng)體

Jersey支持直接使用文件對(duì)象作為響應(yīng)體實(shí)現(xiàn)下載功能,但是需要注意的是需要進(jìn)行判斷文件對(duì)象是否存在,否則會(huì)報(bào)Request failed.

package cn.lx.resource;import javax.ws.rs.*;import javax.ws.rs.core.MediaType;import javax.ws.rs.core.Response;import java.io.File;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;/** 測(cè)試下載文件 * Created by lxliuxuan on 2017/2/7. */@Path("/sign")public class SignResourceT { @GET @Path("/get") @PRoduces(MediaType.application_OCTET_STREAM) public Response getAll(@QueryParam("filePath") String filePath){ File file = new File(filePath); //如果文件不存在,提示404 if(!file.exists()){ return Response.status(Response.Status.NOT_FOUND).build(); } String fileName = null; try { fileName = URLEncoder.encode("下載測(cè)試.xls", "UTF-8"); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } return Response .ok(file) .header("Content-disposition","attachment;filename=" +fileName) .header("Cache-Control", "no-cache").build(); }}

二、使用StreamingOutput對(duì)象作為響應(yīng)體

這種方式可以使用在java做Excel文件導(dǎo)出時(shí),直接從數(shù)據(jù)庫(kù)讀取數(shù)據(jù),將數(shù)據(jù)寫入到輸出流,響應(yīng)給瀏覽器,不需要文件存在。

@GET@Path("/getByStream")@Produces(MediaType.APPLICATION_OCTET_STREAM)public Response getAllByStream(@QueryParam("filePath") String filePath){ FileStream fileStream = new FileStream("d:/test/poi/userSign.xls"); String fileName = null; try { fileName = URLEncoder.encode("下載測(cè)試.xls", "UTF-8"); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } return Response .ok(fileStream) .header("Content-disposition","attachment;filename=" +fileName) .header("Cache-Control", "no-cache").build();}class FileStream implements StreamingOutput{ private String filePath; public FileStream(String filePath) { this.filePath = filePath; } public void write(OutputStream output) throws IOException, WebApplicationException { File file = new File(filePath); //如果文件不存在,提示404 if(!file.exists()){ throw new WebApplicationException(404); } output = new FileOutputStream(file); output.flush(); output.close(); }}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 罗甸县| 吉木乃县| 霞浦县| 苏尼特右旗| 成都市| 仪陇县| 婺源县| 平泉县| 钦州市| 华蓥市| 施秉县| 昌黎县| 鄂尔多斯市| 闵行区| 龙里县| 师宗县| 沅江市| 南部县| 乾安县| 灵石县| 孝感市| 喀喇沁旗| 千阳县| 徐州市| 波密县| 兴和县| 江陵县| 琼结县| 沈阳市| 宁国市| 荥阳市| 襄樊市| 辽阳市| 安多县| 扶风县| 颍上县| 夹江县| 兰州市| 蓝田县| 山丹县| 寻乌县|