3.9K Star 16.5K Fork 5.2K

卓源软件 / JeeSite 4.6 and 5.3

 / 详情

star: jeesite使用ajax下载文件无法打开

Done
Opened this issue  
2023-03-16 02:13

是什么问题、该问题是怎么引起的?

  1. 使用ajax下载的文件无法打开

重现步骤、期望结果、截图、代码

  1. ![返回的文件无法打开]输入图片说明
这里贴你的代码块
```			$.ajax({
				url: '${ctx}/batchcollectiontemplatecontroller/BatchCollectionTemplateController/downloadTemplate?templateName=协办人员基本信息采集模板',
				type: 'get',
				beforeSend: function(xhr) {
					xhr.responseType = "arraybuffer";
				},
				success : function(result, state, xhr){
					const saveResult = xhr.getResponseHeader('saveresult');
					const fileName = xhr.getResponseHeader('Content-Disposition').split(';')[1].split('=')[1].replace(/\"/g, '');
					if (window.navigator && window.navigator.msSaveOrOpenBlob) {
						window.navigator.msSaveOrOpenBlob(xhr.response, fileName);
					}else {//支持a标签download的浏览器
							//通过创建a标签实现
							let link = document.createElement("a");
							//文件名
							link.download = decodeURI(fileName);
							link.style.display = "none"
							let blob = new Blob([result], {type: "application/octet-stream"});
							link.href = URL.createObjectURL(blob);
							document.body.appendChild(link);
							link.click();//执行下载
							URL.revokeObjectURL(link.href);//释放url
							document.body.removeChild(link);//释放标签
						}
					}
				})

                response.setContentType("application/octet-stream");
                // 可以暴露给浏览器获取的的响应头属性
                response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
                response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
                response.setHeader("saveresult", "false");

### 实际结果、报错信息、截图

1. 

这里贴错误信息


### 环境版本:

- JDK版本:1.8
- 浏览器版本:Chrome Edge
- 平台版本:JeeSite 4.0.6

Comments (1)

knightshy created任务
knightshy changed description
knightshy changed title
knightshy changed title
knightshy changed description
knightshy changed title
Expand operation logs
卓源软件 changed issue state from 待办的 to 已完成

Sign in to comment

Status
Assignees
Milestones
Pull Requests
Successfully merging a pull request will close this issue.
Branches
Planed to start   -   Planed to end
-
Top level
Priority
参与者(2)
6732 thinkgem 1651893329
Java
1
https://gitee.com/thinkgem/jeesite4.git
git@gitee.com:thinkgem/jeesite4.git
thinkgem
jeesite4
JeeSite 4.6 and 5.3

Search