重庆网站建设公司模板,php做网站的技术难点,南京网站建设,比较好的网站建设论坛原因描述#xff1a; Content-Type 原因#xff1a;Content-Type#xff0c;即内容类型#xff0c;一般是指网页中存在的Content-Type#xff0c;用于定义网络文件的类型和网页的编码#xff0c;决定文件接收方将以什么形式、什么编码读取这个文件#xff0c;这就是经常…
原因描述 Content-Type 原因Content-Type即内容类型一般是指网页中存在的Content-Type用于定义网络文件的类型和网页的编码决定文件接收方将以什么形式、什么编码读取这个文件这就是经常看到一些PHP网页点击的结果却是下载到的一个文件或一张图片的原因。 后端设置的格式为对应于xlsx的文件后缀名
//设置响应头信息
response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);
response.setCharacterEncoding(utf-8); 而前端下载时文件拓展名没有从headers中取是自行设置的——xls两者之间对不上所以产生了上面的提示信息。 //下载文件流let blobUrl window.URL.createObjectURL(new Blob([res], { type: application/msexcel;charsetutf-8 /*application/force-download*/ }));let a document.createElement(a);a.style.display none;a.setAttribute(href, blobUrl);const fileName 系统配置列表; //以时间信息作为文件名a.setAttribute(download, ${fileName}.xls);document.body.appendChild(a);a.click(); //执行下载window.URL.revokeObjectURL(blobUrl);document.body.removeChild(a);
解决方案 前端下载时保证转换为Blob类型时的type字段值、a标签的download属性与后端的书写方式一致就行。
附MIME TYPES表完整版参考-Media Types (iana.org)