springboot返回图片流,java返回文件流

  springboot返回图片流,java返回文件流

  

目录

跳靴返回文件流跳羚返回二进制文件流

 

  

springboot返回文件流

@ get mapping(value=/File/{ fileName } )公共响应entityfilesystemresource getFile(@ path变量( fileName )字符串文件名)抛出FileNotFoundException { File File=new File(文件路径,文件名);如果(文件。exists()){返回导出(文件);}System.out.println(文件);返回null}公共响应实体文件系统资源导出(文件File){ if(File==null){ return null;} http headers headers=new http headers();headers.add(Cache-Control , no-cache,no-store,must-re validate );标题。添加( Content-Disposition , attachmentfilename= file。getname());headers.add(Pragma , no-cache );headers.add(Expires , 0 );headers.add(上次修改时间,新日期()。toString());headers.add(ETag ,字符串。(系统的值。当前时间毫秒()));返回ResponseEntity.ok().标题(标题)。contentLength(file.length())。内容类型(媒体类型。分析媒体类型(“应用程序/八位字节流”).body(新文件系统资源(文件));}

 

  

springboot返回二进制文件流

@ get mapping(/getTemplateFile )@ API操作(数据模板下载)公共响应实体byte[]downFile(http servlet请求请求)抛出io异常{ File File=new File( C/AA );filename=getFilename(请求,文件名);//设置响应头http headers headers=new http headers();//通知浏览器以下载的方式打开文件标题。setcontentdispositionformdata(附件,文件名);//定义以流的形式下载返回文件数据标题。设置内容类型(媒体类型.应用程序_八位字节_流);//使用学习笔记一框架的响应度对象封装返回数据返回新的响应实体(fileutils。readfiletobytearray(文件),头,HttpStatus .OK);} /** * 根据浏览器的不同进行编码设置* * @param请求请求对象* @param文件名需要转码的文件名* @返回返回编码后的文件名* @ throws io exception */public String get filename(http servlet请求,字符串文件名)抛出IOException { //IE不同版本用户代理中出现的关键词string[]IEBrowserKeyWords={ MSIE , Trident , Edge };//获取请求头代理信息字符串用户代理=请求。get标头(“用户代理”);for(String关键字: IEBrowserKeyWords){ if(用户代理。包含(关键字)){//IE内核浏览器,统一为utf-8编码显示返回URLEncoder.encode(文件名,“UTF-8”);} } //火狐等其他浏览器统一为ISO-8859-1编码显示返回新字符串(文件名。getbytes(标准字符集.UTF_8),标准字符集. ISO _ 8859 _ 1);}以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行它。

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: