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); } }
相关推荐
5. **分享和导入**:如果你希望分享或导入他人的代码片段,可以导出`.json`文件,或者通过VSCode的市场(Marketplace)安装其他开发者分享的代码片段扩展。 在JavaScript开发中,自定义代码片段尤其有用,因为...
**示例代码片段** 在提供的文件中,可能包含以下类: - `PoiExcelExporter.java`:这个类可能是负责整个导出过程的核心,包括创建工作簿、设置表头和数据、合并单元格等操作。 - `ExcelService.java`:服务层可能...
根据提供的部分代码片段,我们可以看到一个名为`AddWorkSheetNoHeader`的方法,该方法接收一个`System.Data.DataTable`类型的参数`dt`,并将其数据导出到一个新的Excel工作表中,但不包括表头。 ```csharp private ...
在本文中,我们将深入探讨如何实现这个功能,主要关注提供的代码片段。 首先,我们看到`ExportFile`类,它包含了四个静态方法,分别用于导出字符串到Word文档(`SaveAsWord`),文本文件(`SaveAsTxt`),以及DataTable...
首先,我们来看一下提供的代码片段,这是一个名为`ExportFileToCsv`的方法,用于将数据导出到CSV文件。 ```csharp private void ExportFileToCsv() { SaveFileDialog saveFileDialog = new SaveFileDialog(); ...
以下是一个简单的示例代码片段,演示如何将查询结果导出为CSV文件: ```delphi uses ..., ADODB, Classes; var ADOConnection: TADOConnection; ADOQuery: TADOQuery; StreamWriter: TStreamWriter; I: ...
以下是一些关键知识点和代码片段,帮助你理解如何实现这一功能。 1. 引用Office组件: 在进行数据导出到Excel时,需要引用Microsoft.Office.Interop.Excel等COM组件。这些组件提供了与Excel交互的接口,允许我们在...
下面通过提供的代码片段来详细分析如何实现上述步骤。 ##### 1. 准备数据 ```csharp DataTabledt = users.GetAll(); ``` 这里`GetAll()`方法用于获取所有测试用户的数据,并将其存储在一个名为`dt`的`DataTable`...
在描述中提到的"example里的方法",可能是指ExtJS官方示例中的一些代码片段,这些示例通常会演示如何实现特定功能,开发者可以参考并修改它们以适应自己的项目需求。 总之,ExtJS6的导出Excel功能结合了分组、分组...
以下是一个简单的示例代码片段,展示了上述步骤: ```java import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.pdf.PdfWriter; import ...
开发效率是至关重要的,而IntelliJ IDEA(简称Idea)作为一款强大的Java集成开发环境,提供了一种高效的方式——代码模板(Code Templates),也称为Live Templates,来帮助开发者快速编写常见的代码片段。...
在标签中,“源码”暗示我们可能会讨论到实际的Java代码片段,而“工具”可能是指使用的一些辅助库或者框架,如Apache POI用于处理Office文档,或者使用Java内置的IO流来处理文件。 至于文件“2531804_meal_...
给定的代码片段展示了如何通过C#代码下载服务器上的文件,并将其返回给客户端。下面对每一步进行详细解释: ##### 2.1 创建文件对象 ```csharp FileInfo DownloadFile = new FileInfo(FullFileName); ``` 这里...
设置文件头信息 ```csharp Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString()); ``` 此行代码设置了HTTP响应头,告知浏览器接收...
- 这里还包含了对样式的定义,虽然代码片段没有完整展示,但可以看出是在设置单元格的对齐方式等属性。 ### 四、总结 通过上述分析可以看出,这两种方法都实现了将数据导出至Excel的功能。第一种方法直接使用文本...
本文将围绕“WinForm最快数据导出”这一主题进行深入探讨,通过对给定代码片段的分析,讲解如何高效地将数据从WinForms应用程序导出到Excel文件中。 #### 一、WinForms应用程序基础 在开发WinForms应用程序时,...
- 设置HTTP响应头,指定导出文件的类型和名称。 - 使用`ServletOutputStream`将填充好的Excel文件输出到客户端。 5. **处理公式**: - 在模板文件中,可以预先设置好需要使用的公式,如求和、平均值等。 - POI...
在导出文件时,关键在于正确设置HTTP响应头。具体来说,`Content-Type`和`Content-Disposition`是两个至关重要的头部字段。其中: - `Content-Type`定义了响应数据的MIME类型,对于word文件,通常设置为`...
在给定的代码片段中,这个方法是`getPrdVerListExcel`,使用`@RequestMapping`注解绑定到指定的URL。 - 首先,我们需要设置响应头的`Content-Type`为`application/vnd.ms-excel`,这样浏览器就知道这是一个Excel...
在代码片段的开始部分,创建了一个`SqlConnection`对象`conn`,用于连接到数据库。连接字符串通过`System.Configuration.ConfigurationSettings.AppSettings("strconn")`获取,通常在应用程序配置文件中设置。接着,...