`

java中的文件预览和下载

阅读更多

1、struts2实现预览

action中代码:

	private String downloadFileName;        
	public InputStream getDownloadFile() throws Exception
	{
		Map<String,String[]> param = super.getParameter();
		String imageFileId = ((String[])param.get("fileId"))[0];
		Integer fileId = new Integer( imageFileId );
		//根据fileId去库中查询文件名称
		String filename = activityService.getImageFileName(fileId).getImageFile();
		downloadFileName = filename;
		this.setDownloadFileName(downloadFileName);
		String fullPath = MisConst.IMAGE_FILE_PATH + "activity"+"/" + downloadFileName;	
        File file = new File( fullPath );
        FileInputStream fis = null;
        try {
            fis = new FileInputStream(file);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }        
        return fis;
	}
	
	/**
	 * 下载附件
	 * @return
	 */
	public String download()
	{
		return SUCCESS;
	}

 xml中配置:

<action name="download" class="activityAction" method="download">
	<result name="success" type="stream">
		<param name="contentType">application/octet-stream </param>
		<param name="contentDisposition">filename=${downloadFileName}</param>
		<param name="inputName">downloadFile</param>//downloadFile要和action中getDownloadFile() 方法名一致
	</result>
</action>

 2、真正的下载

action:

/**
	 * 下载
	 * @return
	 * @throws Exception
	 */
	public String download() throws Exception{
		FileInputStream in=null;
		OutputStream out=null;
		try{
			String filename = ServletActionContext.getRequest().getParameter("filename");
			filename = URLDecoder.decode(filename.trim(), "utf-8");
			String filepath = ServletActionContext.getServletContext().getRealPath("\\upload\\takingFile")+"\\"+filename;
			File file = new File(filepath);
			byte[] buff = new byte[1024];
			in = new FileInputStream(file);
			HttpServletResponse response=ServletActionContext.getResponse();
			response.reset();
			out = response.getOutputStream();
			response.setContentType("application/x-download");
			response.addHeader("Content-Disposition", "attachment;filename=\"" + URLEncoder.encode(file.getName(), "utf-8")+"\"");
			response.setHeader("Connection", "close");
            while (true) {
                int len = in.read(buff);
                if (len != -1) {
                    out.write(buff, 0, len);
                    out.flush();
                } else {
                    break;
                }
            }
		}catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(in!=null){
				in.close();
			}
			if(out!=null){
				out.close();
			}
		}
		
		return null;
	}

 jsp:

function downLoad(filename){
	var filename = filename;
	var data="?filename="+encodeURI(encodeURI(filename));//注意两次转码,否则中文会乱码
	var url ="download.action";
       window.open(encodeURI(url)+data);
}

 

 

分享到:
评论

相关推荐

    java 实现 word 文档的在线预览

    在Java开发中,实现Word文档的在线预览是一项常见的需求,尤其在企业级应用中,例如文档管理系统或者协同办公平台。这项功能可以让用户无需下载原始文件就能查看文档内容,提高工作效率并减少服务器存储压力。本资源...

    java文件文档在线预览项目解决方案系统源码.zip

    JAVA文件文档在线预览项目解决方案,对标业内付费产品有【永中office】【office365】【idocv】等,该项目使用流行的spring boot搭建,易上手和部署,支持主流办公文档的在线预览,如doc,docx,Excel,pdf,txt,zip,rar,...

    LibreOffice:java 预览Excel、java预览word、java预览DOCX

    在Java中预览Excel、Word和DOCX文件,主要涉及以下几个关键知识点: 1. **JODConverter**:这是一个基于LibreOffice的Java库,用于转换Office文档。它提供了一个简单的接口,使得Java应用程序能够将不同格式的文档...

    利用java后端实现文件在线预览

    本文将详细讲解如何利用Java后端技术实现文件在线预览,特别是针对文档(如.doc、.docx、.xls、.xlsx、.ppt、.pptx)和图片格式的预览。 首先,我们需要理解文件预览的基本原理:用户通过浏览器发送请求到服务器,...

    java操作mongoDB实现文件上传预览打包下载

    在Java编程环境中,...总的来说,Java与MongoDB的集成提供了丰富的功能,可以方便地实现文件的上传、下载、预览和打包下载。通过理解MongoDB的API和Java的IO流处理,开发者可以构建出高效且用户友好的文件管理系统。

    java实现文件预览工具包

    在Java开发中,有时我们需要为用户提供文件预览功能,以便他们在不下载文件的情况下查看其内容。这个"java实现文件预览工具包"正是为了解决这个问题而设计的。它包含了两个核心部分:OpenOffice和PDF.js,分别针对...

    JAVA实现文件预览功能

    总结,实现Java文件预览功能需要根据文件类型选择合适的处理方法。对于文本文件,可以使用Java内置的I/O类;图片文件则需要图像处理支持;PDF文件可能需要借助第三方库。结合Swing或JavaFX等UI框架,可以构建出直观...

    java实现仿百度文库预览文档功能

    在他人基础上实现java实现仿百度文库预览文档功能, Txt/Word/Excel/PPT =&gt; PDF(OpenOffice+JodConverter) =&gt; SWF(pdf2swf)=&gt;FlexPaper浏览。 包含了源代码,文档,部分较小文件的安装文件,部分较大文件的下载...

    Java实现web在线预览office文档

    综上所述,Java实现Web在线预览Office文档和PDF文档主要涉及文件读取、内容转换、文档预览和服务器端的文件操作。通过合理选择和使用相应的库和工具,可以构建出稳定且高效的在线预览系统。在Linux环境下,结合开源...

    java实现浏览器在线预览offic(doc、xls、ppt)和pdf文件

    java实现浏览器在线预览offic(doc、xls、ppt)和pdf文件,本人将例子集成到项目中,已成功。 技术原理:将文件先转换成pdf文件,再将pdf文件转换成swf文件,最后显示在浏览器上。 资源描述:本资源包括swftools...

    java实现pdf上传,下载,在线预览,删除,修改等功能

    在Java开发中,处理PDF文件是一项常见的任务,包括上传、下载、在线预览、删除以及修改等操作。这里我们将深入探讨这些功能的实现,并结合标签`java xpdf java实现pdf`来讨论XPDF库在Java中的应用。 1. **PDF上传**...

    java 实现office文档的在线预览

    java 实现的文档在线预览: 需要下载的工具有:OpenOffice+flexpaper+swftools+jodcconverter * .启动OpenOffice的服务 * 1 win+R开启dos窗口 * 2 执行:cd C:\Program Files (x86)\OpenOffice 4\program * 3 ...

    java实现word预览打印

    在IT行业中,尤其是在文档处理领域,Java是一种广泛使用的编程语言,可以实现各种复杂的功能,如动态生成模板Word文件,将其转换为PDF,并进行预览打印。以下是对标题、描述和标签所涉及知识点的详细说明: 1. **...

    \java通过url在线预览Word、excel、ppt、pdf、txt文档中的内容

    Excel 文档预览与 Word 文档预览类似,首先建立链接,获取网络输入流,然后使用 `HSSFWorkbook` 读取 Excel 文档中的内容。最后使用 `response.getWriter().write()` 将内容输出到浏览器上。 Java 代码如下: ```...

    java web在线预览pdf、word、excel

    为了实现文档预览,我们需要创建一个Controller,该Controller接收前端请求,读取服务器上的PDF、Word或Excel文件,然后将文件内容转换为适合在浏览器中展示的格式。 对于PDF文件,在Java Web环境中,可以使用...

    java+实现文件预览+openoffice插件

    word、excel、txt文件,浏览器预览功能实现工具类,OpenOfficeUtil,openoffice插件!

    pdf.js在java web项目中远程预览ftp上的pdf文件.docx

    描述:本文档详细介绍了使用pdf.js在Java web项目中远程预览FTP服务器上的PDF文件的方法。通过配置pdf.js插件和自定义servlet,可以实现在线预览远程FTP服务器上的PDF文件。 标签:pdf、ftp 知识点: ### 1. 远程...

    java文件预览功能实现,可预览zip等文件.7z

    使用spring boot打造文件文档在线预览项目解决方案,支持doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4,mp3以及众多类文本如txt、html、xml、java、properties、sql、js、md、json、conf、ini、vue、php、py、...

    wpsoffice在线预览,在线编辑 Java版

    【标题】"wpsoffice在线预览,在线编辑 Java版"所涉及的知识点主要集中在如何在Java环境中实现对WPS Office文档的在线预览和编辑功能。WPS Office是一款流行的办公软件套装,包含了文字处理、电子表格和演示文稿等...

    java实现在线文档预览(项目+相关软件)

    在IT领域,尤其是在Web开发中,提供在线文档预览功能是一项常见的需求,它允许用户无需下载文件即可查看文档内容。本项目"java实现在线文档预览(项目+相关软件)"正是针对这一需求的解决方案,它结合了Java后端技术...

Global site tag (gtag.js) - Google Analytics