我有一个Web服务,它将文件作为带扩展名为.json的url返回给请求浏览器。例如:
https://somesite/rest/directories/output/_ags_SessionFile_f46fd461-b437-11e7-9dc1-005056bd201b.json
目的是简单地导航这个URL并调用“SaveAs”或者只是将.json文件保存到下载目录。
这适用于大多数情况,但是在没有与IE的.json文件类型关联的计算机上(在ControlPanel - >默认程序中找到),则不会下载文件或使用SaveAs选项和新用户提示打开浏览器窗口,显示页面中显示的.json文件的内容。
我有点不确定如何搜索这样的东西,即使这篇文章可能还不够,因为我根本没有遇到过这个问题。
function downloadFile(results, messages) {
//set a var of the complete url address that is returned from the GP service request
var urlOfFile = results[0].value.url;
//get the div from the html of the widget
link = document.getElementById('downloadSession');
link.setAttribute('href', urlOfFile);
link.click();
}
<div>
<a id="downloadSession" href="" target="_blank"></a>
</div>
答案 0 :(得分:1)
将HTML5 download
属性添加到<a>
标记应该适合您
下载HTML5
此属性指示浏览器下载URL而不是导航到URL,因此系统会提示用户将其另存为本地文件
文档还注意到一些类似的问题,它只适用于同源URL和其他一些URL,因此值得一读。
不幸的是,Internet Explorer不支持download
属性,因此要使下载正常工作,您必须在服务器的响应中添加Content-Type
和Content-Disposition
标头
他们应该看起来像:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.json\"
答案 1 :(得分:0)
添加标题:
header('Content-disposition: attachment; filename=file.json');
header('Content-type: application/json');
echo $json;