0 0

下载pdf文档报错,内容转码失败5

java实现下载pdf文档报错,内容转码

失败。
代码如下:
public void downLoad(String filePath, HttpServletResponse response) throws Exception {
File f = new File(filePath);
if (!f.exists()) {
response.sendError(404, "File not found!");
return;
}
BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
byte[] buf = new byte[1024];
int len = 0;

response.reset(); // 非常重要
// 纯下载方式
String fileName = f.getName();
fileName = java.net.URLEncoder.encode(fileName, "UTF-8");

response.setCharacterEncoding("UTF-8");
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);

OutputStream out = response.getOutputStream();
while ((len = br.read(buf)) > 0)
out.write(buf, 0, len);
br.close();
out.close();
}
2012年7月03日 09:31
  • 大小: 15.1 KB

1个答案 按时间排序 按投票排序

0 0

采纳的答案

	public void downloadLocal(HttpServletRequest request,HttpServletResponse response, String fileName,
			String pathAndFileName) throws FileNotFoundException {
		InputStream inStream = new FileInputStream(pathAndFileName);
		response.reset();
		ServletUtil.setFileDownloadHeader(request, response, fileName);

		byte[] b = new byte[100];
		int len;
		try {
			while ((len = inStream.read(b)) > 0)
				response.getOutputStream().write(b, 0, len);
		} catch (IOException e) {
		
		}finally{
			try {
				inStream.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
			public static void setFileDownloadHeader(HttpServletRequest request,HttpServletResponse response, String fileName) {
			String encodedfileName;
			try {
				//中文文件名支持
				if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0){
					encodedfileName = URLEncoder.encode(fileName, "UTF-8");
				}else if(request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0||request.getHeader("User-Agent").toLowerCase().indexOf("opera") > 0){
					encodedfileName = new String(fileName.getBytes(), "ISO8859-1");
				}else{
					encodedfileName = URLEncoder.encode(fileName, "UTF-8");
				}
				
				response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedfileName + "\"");
			} catch (UnsupportedEncodingException e) {
			}
		}


下载方法。不限制你的任何文件

2012年7月03日 09:55

相关推荐

    OFFICE to PDF转换工具,完美

    这个工具的主要目的是帮助用户将Word、Excel、PowerPoint等OFFICE文档保存为PDF格式,以确保内容在不同设备和操作系统上的显示一致性。 描述中的“OFFICE完美转换成PDF文档”进一步强调了该工具在转换过程中的高...

    pdf2SWF 中文转码

    PDF2SWF中文转码是将包含中文字符的PDF文档转换为SWF(Shockwave Flash)文件的过程,以便在Web上以交互式形式查看或共享。这个过程涉及到字体的正确处理,以确保中文字符能够在转换后正确显示。在这个场景中,`xpdf...

    pdf转码word软件

    "pdf转码word软件"是一款专为此目的设计的工具,它能帮助用户将PDF文件转换成Word文档,以便于编辑、添加内容或者进行其他操作。 在PDF转Word的过程中,以下是一些关键的知识点: 1. **格式保留**:优秀的转换软件...

    模仿百度网盘实现大文件pdf预览(分页转码实现)

    在IT行业中,大文件预览是一项重要的功能,尤其在云存储服务如百度网盘中,用户需要能够快速、高效地预览大型PDF文档而无需下载整个文件。本项目旨在模仿百度网盘,实现一个大文件PDF预览系统,通过分页转码技术,将...

    解决android读取中文乱码 自动判断文档类型并转码

    解决 Android 读取中文乱码自动判断文档类型并转码 Android 读取中文 txt 文件时经常会出现...通过自动判断文档类型并转码,我们可以解决 Android 读取中文 txt 文件时出现的乱码问题,从而正确地读取文件的内容。

    转码文档PDF转CAD

    PDF文件通常用于分享和分发已完成的设计或报告,因为它们可以防止内容被轻易修改。 2. CAD文件格式:CAD,计算机辅助设计,是一种利用软件工具进行二维或三维图形设计的技术。常见的CAD软件有AutoCAD、SolidWorks、...

    HEVCH265-标准文档-022018.pdf.pdf

    在信息技术领域,"HEVCH265-标准文档-022018.pdf.pdf"文档是一份重要的参考资料,其标题指出了文档内容的焦点,即"High efficiency video coding编码标准",文档全称为"H.265(02/2018)系列H:音频视频和多媒体系统的...

    pdf 转码jar.zip

    【描述】"office 转码pdf jar包,包含word,ppt,excel,visio等格式转换jar"说明了该压缩包的核心功能,即提供了一种工具集,能够方便地将Office文档转换为PDF。在企业级应用中,这种转换能力是非常重要的,因为PDF...

    融创转码服务器对接文档

    根据给定文件内容,以下是关于“融创转码服务器对接文档”的知识点: 1. 接口规范版本:文档中的转码器接口规范版本为V2.0.0,涂远东于2013年04月09日制定。 2. 文档修订记录:文档的修订记录显示了不同版本的发布...

    网页文档批量生成转码器

    根据文件名批量生成同名文档,包括html/asp/php/txt,生成的文档内包含该文件名,此功能可用于手工生成静态html页面,和大批量网页生成。可实现gb2312和utf-8码率的互换,支持文件夹批量转换。

    PDF编辑器删空白页

    如果PDF文档是从Word或其他文字处理软件转换而来的,转码过程中可能出现空白页。这通常是因为分页符或段落格式设置不当。在源文档中修正这些问题,然后再转换为PDF,可以避免空白页的产生。 6. **批量处理** 对于...

    强大的php生成word ,html,rtf,pdf框架(包含中文文档)

    首先我们要了解文档最基本的信息和设置: 4 计量单位:缇(twips) 4 字体设置 4 文档属性设置 4 新建文档 5 添加页面 5 页面样式 5 页面样式属性 6 文本 7 添加文本 7 添加文本资源 7 文本样式 8 样式属性列表 9 ...

    官方文档-FFmpeg Basics.pdf

    从文档提供的部分预览内容来看,文档涵盖了以下知识点: 1. FFmpeg基础介绍,包括其开发者信息及如何参与FFmpeg项目开发。 2. 如何下载和安装FFmpeg,以及如何设置命令行环境。 3. 命令行语法,包括Windows命令提示...

    pdf转码word

    PDF转码成Word是IT行业中常见的文档转换需求,主要用于优化文档编辑、分享和阅读体验。PDF(Portable Document Format)格式因其稳定性和跨平台性而广泛使用,但有时由于其不可编辑性,用户需要将其转换为Word(Word...

    java pdf需要的jar包

    通过这个库,开发者可以读取PDF文档中的文本内容,识别字体类型,甚至在创建新的PDF文档时添加自定义字体。这对于确保PDF文档在不同设备和操作系统上正确显示至关重要。 2. **pdfbox-1.8.2.jar**:Apache PDFBox的...

    android在线查看pdf文档

    pdfShowWebView = (WebView) findViewById(R.id.pdf_show_webview); pdfShowWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) {...

    word,excel,txt转码成pdf的应用服务

    总的来说,"word,excel,txt转码成pdf的应用服务"是一个实用的工具,它利用先进的技术和算法,方便用户快速地将常见的文本文件格式转换为PDF,以确保内容的一致性和兼容性。这种服务对于跨平台分享、长期存储和专业...

    基于分布式视频转码技术的视频云平台.pdf

    分布式视频转码技术涉及将视频内容从一种格式转换成另一种格式,它允许用户根据需求转换视频的编码、分辨率、比特率等多种参数。其核心优势在于分布式处理模式,即多个转码进程可以同时独立运行,支持大量视频同时...

Global site tag (gtag.js) - Google Analytics