`
darrenzhu
  • 浏览: 804304 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

浏览器下载文件的方式

阅读更多

用POST请求让浏览器下载文件
方法1. 动态构造一个html Form表单元素,将参数隐藏在表单中通过post传过去

var data = tableElement.data;
var columns = tableElement.columns;
var groupColumns = tableElement.groupColumns;

var url = 'servlet/exportMovementReport.do';
var name = 'download';
var keys = ['data', 'columns', 'groupColumns'];
var values = [Ext.encode(data), Ext.encode(columns), Ext.encode(groupColumns)];

var html = "";
html += "<html><head></head><body><form id='formId' name='formName' method='post' action='"
		+ url + "'>";
if (keys && values && (keys.length == values.length)) {
	for (var i = 0; i < keys.length; i++) {
		html += "<input type='hidden' name='" + keys[i] + "' value='"
				+ values[i] + "'/>";
	}
}
html += "</form><script type='text/javascript'>document.getElementById(\"formId\").submit()</script></body></html>";
window.open('#', name).document.write(html);



方法2. 先在服务器端生成文件, 这样你就面临一个如何清除这些文件的问题
http://www.sencha.com/forum/showthread.php?81897-FYI-Very-simple-approach-to-JS-triggered-file-downloads

http://stackoverflow.com/questions/3499597/javascript-jquery-to-download-file-via-post-with-json-data


http://www.sencha.com/forum/showthread.php?153253-How-to-download-a-file-using-Ext.Ajax-using-a-POST-call

其他参考:
用window.location.href=''方法打开页面下载打印数据
http://yuzhijia88-126-com.iteye.com/blog/747142


用GET请求让浏览器下载文件
客户端:
很简单,就是拼凑服务器端的URL,然后window.open()就行
var url = getContextURL() + 'services/exportExcel?reportDate=20151110'
window.open(url);
服务器端,这里包含了使用一个excel模板来生成最终的文件:

	@GET
	@Path("/exportExcel")
	public Response exportExcel(@QueryParam("reportDate") String reportDate, @Context HttpServletResponse response) throws IOException, InvalidFormatException
	{
		List<Map<String, Object>> data = ...;
		Map<String,Object> dataMap = Maps.newHashMap();
		dataMap.put("notifications", data);
		dataMap.put("reportDate", reportDate);
        
        response.setContentType("application/vnd.ms-excel");
        response.setHeader("Content-Disposition", "attachment; filename=\"Export_Report.xls\"");
        try {

			InputStream is = new ClassPathResource("template/Export_Template.xls").getInputStream();

	        XLSTransformer transformer = new XLSTransformer();
	        org.apache.poi.ss.usermodel.Workbook wb = transformer.transformXLS(is, dataMap);
	        wb.write(response.getOutputStream());
		} catch (IOException e) {
			LOGGER.error("Failed to read template!", e);
			throw e;
		} catch (ParsePropertyException e) {
			LOGGER.error("Failed to read template!", e);
			throw e;
		} catch (InvalidFormatException e) {
			LOGGER.error("Failed to read template!", e);
			throw e;
		}
		return Response.ok().build();
	}

分享到:
评论

相关推荐

    监听浏览器文件下载事件的插件

    2. **使用`fetch` API**:`fetch`函数可以用来发起HTTP请求,包括下载文件。通过监听`fetch`的返回Promise,我们可以获取到请求的状态,比如开始、成功或失败。但这依然不能直接告诉我们文件是否保存到了用户的本地...

    手机浏览器下载dnrwapxsjw.rar

    标题中的"手机浏览器下载dnrwapxsjw.rar"表明这是一个通过手机浏览器下载的RAR压缩文件,RAR是一种常见的文件压缩格式,通常用于打包多个文件或文件夹以便于存储和传输。"dnrwapxsjw"可能是这个压缩包的具体名称或者...

    android 浏览器 调用系统下载功能

    7. **自定义下载对话框**:如果希望浏览器弹出特定的下载框,可以自定义一个对话框布局,然后在JavaScript调用的Java方法中显示这个对话框,让用户选择是否、如何以及在哪里保存文件。 8. **生命周期管理**:考虑到...

    微信跳转浏览器下载APP,打开网页实现代码.rar

    本文将详细讲解如何实现“微信跳转浏览器下载APP”这一功能,以及涉及的关键知识点。 首先,我们需要理解微信的内置浏览器并不支持直接下载APK文件,为了绕过这一限制,我们可以采用以下策略: 1. **生成微信跳转...

    Ghost 浏览器 ghost 文件浏览器

    这种直观的浏览方式使得用户能了解备份文件的内容,便于查找特定文件或分区。 2. **数据提取**:如果需要从.GHO文件中恢复某个单独的文件或文件夹,Ghost浏览器允许用户直接提取出来,而无需恢复整个映像。这对于...

    360安全浏览器的下载方式

    本文将详细讲解360安全浏览器的下载方式及其特点。 首先,360安全浏览器的下载通常可以通过官方网站进行。访问360官方浏览器页面,你可以在首页找到“立即下载”或“最新版本下载”的按钮。点击后,系统会自动检测...

    网页视频浏览器下载插件

    在网页视频浏览器下载插件中,Flash-Video-Downloader_v.crx 是一个典型的例子,它可能是Chrome浏览器的扩展程序文件。CRX文件是Google Chrome浏览器用来安装扩展的格式,包含HTML、CSS、JavaScript和其他资源,用于...

    c#从ftp服务器上下载文件 丢给浏览器响应

    在C#编程环境中,开发Web应用时,有时我们需要实现从FTP服务器下载文件并直接提供给浏览器的功能。这个过程涉及到FTP协议、HTTP协议以及C#的网络编程知识。下面将详细阐述这一过程的关键步骤和涉及的技术点。 首先...

    JavaScript实现的浏览器下载文件的方法

    在JavaScript中,实现浏览器下载文件是一项常见的需求,特别是在交互式Web应用中。本文将深入探讨如何使用JavaScript来触发浏览器的文件下载功能,并提供一个简单的代码示例。 首先,我们需要了解浏览器的安全策略...

    GHO镜像浏览器V11

    总的来说,GHO镜像浏览器V11是系统管理员和电脑爱好者手中的一款强大工具,它提供了一种简单易用的方式,让人们可以查看、管理和恢复GHO格式的系统备份文件。通过掌握这款软件的使用,不仅可以提高工作效率,还能...

    chrome 浏览器跨域插件下载

    4. 拖拽下载的CRX文件到扩展程序页面,浏览器会提示添加扩展,确认即可。 关于前端跨域,主要涉及以下几个知识点: 1. 同源策略:这是浏览器为了安全考虑实施的一项规定,只允许来自相同协议、域名和端口的请求访问...

    SpringBootWeb文件下载实例

    在“SpringBootWeb文件下载实例”项目中,我们关注的是如何在浏览器环境中,通过SpringBoot服务端提供文件给客户端下载。 首先,我们需要了解SpringBoot的基础架构。SpringBoot简化了Spring应用程序的初始设置,...

    java使用itext实现pdf文件下载

    本教程将详细讲解如何使用Itext库实现PDF文件的下载,包括通过系统路径下载和通过浏览器下载两种方式。 首先,我们需要了解Itext的基本用法。Itext提供了一系列的API,可以方便地创建PDF文档的各个元素,如文本、...

    完整版程序下载(浏览器打开这个文件).html

    完整版程序下载(浏览器打开这个文件).html

    免费开源指纹浏览器下载

    标题中的"免费开源指纹浏览器下载"指的是可以免费获取并查看其源代码的指纹浏览器软件。开源意味着开发者或用户可以自由地查看、修改和分发代码,这为技术爱好者提供了自定义和优化软件的可能性。对于用户来说,开源...

    A++浏览器.zip

    【A++浏览器】的文件名表明它是整个软件的打包文件,可能包含浏览器的安装程序、必要的库文件、配置文件以及帮助文档等。安装这个压缩包后,用户可以按照指导步骤进行安装,然后在企业环境中享受到定制化浏览器带来...

    解决不同浏览器下载时中文名乱码问题

    该字段通常用来指定下载文件的默认名称及展示方式(如内嵌或下载)。对于中文文件名而言,若未进行正确的编码转换,则不同浏览器会表现出不同的解析结果,从而导致乱码问题。 #### 二、解决思路 针对此问题,我们...

    Java Servlet实现在浏览器中打开pdf文件

    然后通过"Content-Disposition"头,我们告诉浏览器以"inline"方式显示文件,而不是作为附件下载。如果想让用户下载而非直接打开,可以将"inline"改为"attachment"。 2. 接下来,我们需要在`web.xml`配置文件中注册...

    T+浏览器安装包 TPlus浏览器安装文件

    5. **安装组件**:安装程序会将所有必要的文件复制到指定位置,并创建快捷方式以便用户轻松启动浏览器。 6. **设置配置**:用户可能有机会配置一些初始设置,如是否设为默认浏览器等。 7. **完成安装**:最后,...

    百度浏览器下载的文件在哪里.docx

    **百度浏览器下载文件位置详解** 在日常网络使用中,我们经常需要下载各种文件,而百度浏览器作为一款常用的浏览工具,其下载功能也是用户经常会用到的。本文将详细讲解如何在百度浏览器中找到并管理已下载的文件。...

Global site tag (gtag.js) - Google Analytics