`

代码片段,导出的文件头

    博客分类:
  • java
 
阅读更多
public static void setDownloadHeader(String downloadFileName, HttpServletRequest request,
            HttpServletResponse response, boolean isDirectDownload) {

        try {
            if (PatternUtil.isBlank(downloadFileName)) {
                return;
            }
            String fileType = downloadFileName.substring(downloadFileName.lastIndexOf(".") + 1).toLowerCase();
            response.setCharacterEncoding("UTF-8");
            String userAgent = request.getHeader("User-Agent").toLowerCase();
            if (PatternUtil.isImageFile(downloadFileName) && !isDirectDownload) {
                if (userAgent.indexOf("msie") != -1) {
                    response.setContentType("application/octet-stream");
                } else {
                    response.setContentType("image/" + fileType);
                }
            } else {
                response.setContentType("application/octet-stream");
                if (downloadFileName.length() > 70) {
                    downloadFileName =
                            new StringBuilder().append(downloadFileName.substring(0, 10)).append("....")
                                    .append(fileType).toString();
                }
                if (userAgent.indexOf("firefox") != -1) {
                    response.setHeader("Content-Disposition", new StringBuilder()
                            .append("attachment; filename*=utf8''")
                            .append(URLEncoder.encode(downloadFileName, "UTF-8")).toString());
                } else if (userAgent.indexOf("safari") != -1) {
                    response.setHeader("Content-Disposition", new StringBuilder().append("attachment; filename=")
                            .append(new String(downloadFileName.getBytes("UTF-8"), "ISO8859-1")).toString());
                } else {
                    response.setHeader("Content-Disposition", new StringBuilder().append("attachment; filename=")
                            .append(URLEncoder.encode(downloadFileName, "UTF-8")).toString());
                }
            }
        } catch (UnsupportedEncodingException e) {
            logger.error("set download header error!", e);
        }

    }

 

分享到:
评论

相关推荐

    在VSCode中轻松生成代码片段

    5. **分享和导入**:如果你希望分享或导入他人的代码片段,可以导出`.json`文件,或者通过VSCode的市场(Marketplace)安装其他开发者分享的代码片段扩展。 在JavaScript开发中,自定义代码片段尤其有用,因为...

    poi 导出多表头

    **示例代码片段** 在提供的文件中,可能包含以下类: - `PoiExcelExporter.java`:这个类可能是负责整个导出过程的核心,包括创建工作簿、设置表头和数据、合并单元格等操作。 - `ExcelService.java`:服务层可能...

    Excel导出时不要表头.txt

    根据提供的部分代码片段,我们可以看到一个名为`AddWorkSheetNoHeader`的方法,该方法接收一个`System.Data.DataTable`类型的参数`dt`,并将其数据导出到一个新的Excel工作表中,但不包括表头。 ```csharp private ...

    WinForm导出文件为Word、Excel、文本文件的方法

    在本文中,我们将深入探讨如何实现这个功能,主要关注提供的代码片段。 首先,我们看到`ExportFile`类,它包含了四个静态方法,分别用于导出字符串到Word文档(`SaveAsWord`),文本文件(`SaveAsTxt`),以及DataTable...

    C#导出CSV格式的代码

    首先,我们来看一下提供的代码片段,这是一个名为`ExportFileToCsv`的方法,用于将数据导出到CSV文件。 ```csharp private void ExportFileToCsv() { SaveFileDialog saveFileDialog = new SaveFileDialog(); ...

    将SQL数据库内容导出为文本文件(Delphi)..rar

    以下是一个简单的示例代码片段,演示如何将查询结果导出为CSV文件: ```delphi uses ..., ADODB, Classes; var ADOConnection: TADOConnection; ADOQuery: TADOQuery; StreamWriter: TStreamWriter; I: ...

    数据导出到Excel(或Word)源代码大全.doc

    以下是一些关键知识点和代码片段,帮助你理解如何实现这一功能。 1. 引用Office组件: 在进行数据导出到Excel时,需要引用Microsoft.Office.Interop.Excel等COM组件。这些组件提供了与Excel交互的接口,允许我们在...

    asp.net 导出 CSV

    下面通过提供的代码片段来详细分析如何实现上述步骤。 ##### 1. 准备数据 ```csharp DataTabledt = users.GetAll(); ``` 这里`GetAll()`方法用于获取所有测试用户的数据,并将其存储在一个名为`dt`的`DataTable`...

    ExtJs6 导出excel(包含分组、分组合计行、二重表头)

    在描述中提到的"example里的方法",可能是指ExtJS官方示例中的一些代码片段,这些示例通常会演示如何实现特定功能,开发者可以参考并修改它们以适应自己的项目需求。 总之,ExtJS6的导出Excel功能结合了分组、分组...

    java实现导出pdf文件

    以下是一个简单的示例代码片段,展示了上述步骤: ```java import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.pdf.PdfWriter; import ...

    idea 代码 模板 代码模板 live templates

    开发效率是至关重要的,而IntelliJ IDEA(简称Idea)作为一款强大的Java集成开发环境,提供了一种高效的方式——代码模板(Code Templates),也称为Live Templates,来帮助开发者快速编写常见的代码片段。...

    servlet导出文件

    在标签中,“源码”暗示我们可能会讨论到实际的Java代码片段,而“工具”可能是指使用的一些辅助库或者框架,如Apache POI用于处理Office文档,或者使用Java内置的IO流来处理文件。 至于文件“2531804_meal_...

    c#—http下载文件代码

    给定的代码片段展示了如何通过C#代码下载服务器上的文件,并将其返回给客户端。下面对每一步进行详细解释: ##### 2.1 创建文件对象 ```csharp FileInfo DownloadFile = new FileInfo(FullFileName); ``` 这里...

    导出Excel的代码

    设置文件头信息 ```csharp Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString()); ``` 此行代码设置了HTTP响应头,告知浏览器接收...

    web 利用XML导出EXCEL

    - 这里还包含了对样式的定义,虽然代码片段没有完整展示,但可以看出是在设置单元格的对齐方式等属性。 ### 四、总结 通过上述分析可以看出,这两种方法都实现了将数据导出至Excel的功能。第一种方法直接使用文本...

    winform 最快数据导出

    本文将围绕“WinForm最快数据导出”这一主题进行深入探讨,通过对给定代码片段的分析,讲解如何高效地将数据从WinForms应用程序导出到Excel文件中。 #### 一、WinForms应用程序基础 在开发WinForms应用程序时,...

    poi excel 模板读取并导出带公式的excel文档

    - 设置HTTP响应头,指定导出文件的类型和名称。 - 使用`ServletOutputStream`将填充好的Excel文件输出到客户端。 5. **处理公式**: - 在模板文件中,可以预先设置好需要使用的公式,如求和、平均值等。 - POI...

    word__xls文件导出

    在导出文件时,关键在于正确设置HTTP响应头。具体来说,`Content-Type`和`Content-Disposition`是两个至关重要的头部字段。其中: - `Content-Type`定义了响应数据的MIME类型,对于word文件,通常设置为`...

    java web将数据导出为Excel格式文件代码片段

    在给定的代码片段中,这个方法是`getPrdVerListExcel`,使用`@RequestMapping`注解绑定到指定的URL。 - 首先,我们需要设置响应头的`Content-Type`为`application/vnd.ms-excel`,这样浏览器就知道这是一个Excel...

    vb.Net datagrid数据导出到excel

    在代码片段的开始部分,创建了一个`SqlConnection`对象`conn`,用于连接到数据库。连接字符串通过`System.Configuration.ConfigurationSettings.AppSettings("strconn")`获取,通常在应用程序配置文件中设置。接着,...

Global site tag (gtag.js) - Google Analytics