当前位置: 首页 > news >正文

中兴建设有限公司网站集团网站制作方案ppt

中兴建设有限公司网站,集团网站制作方案ppt,府网站建设先进个人,合肥网络推广培训遇到的问题: 文件下载后文件一直被破坏,无法正常打开文件名乱码,如图 刚开始一直在纠结,是不是后端没有写对,然后导致下载不能使用 后来搜索了一些资料,发现后端没什么问题 然后就开始找到其他项目对比…

遇到的问题:

  • 文件下载后文件一直被破坏,无法正常打开
  • 文件名乱码,如图
    在这里插入图片描述

刚开始一直在纠结,是不是后端没有写对,然后导致下载不能使用

后来搜索了一些资料,发现后端没什么问题

然后就开始找到其他项目对比下载功能

哈哈哈哈哈哈哈

不会也只能靠这个方法去找问题了,就是有点笨,但总归找到了问题所在

下载功能后端代码

    @GetMapping("/annex")public void downloadAnnex(ProcessFindReqVo processFindReqVo, HttpServletResponse response) throws IOException, HttpMediaTypeNotAcceptableException {String filePath = "文件路径"; // 指定文件路径if (StringUtils.isBlank(filePath)) {return;}File file = new File(filePath);if (!file.exists()) {return;}response.setCharacterEncoding("utf-8");response.setContentType("application/octet-stream;charset=UTF-8");String fileName = URLEncoder.encode(file.getName(), StandardCharsets.UTF_8.name()).replaceAll("\\+", "%20");response.addHeader("Content-Disposition", "attachment;filename=" + fileName);byte[] buffer = new byte[(int)file.length()];FileInputStream fis = null;OutputStream os = null;try {fis = new FileInputStream(file);os = response.getOutputStream();int i = -1;while ((i = fis.read(buffer)) != -1) {os.write(buffer, 0, i);}} catch (IOException ex) {ex.printStackTrace();} finally {if (os != null) {try {os.flush();os.close();} catch (IOException e) {e.printStackTrace();}}if (fis != null) {try {fis.close();} catch (IOException e) {e.printStackTrace();}}}}

下载功能前端代码

export async function downloadAnnex(data){const res = await axios.get(`/scm/web/monthly/download/annex?id=`+data, {responseType: 'blob'})const content = res.dataconst blob = new Blob([content], { type: 'application/octet-stream' })const contentDispositionHeader = res.headers['content-disposition'];const fileName = contentDispositionHeader.split(';').map(item => item.trim()).find(item => item.startsWith('filename=')).substr('filename='.length);let decodeName = decodeURI(fileName);if ('download' in document.createElement('a')) { // 非IE下载const elink = document.createElement('a')elink.download = decodeNameelink.style.display = 'none'elink.href = URL.createObjectURL(blob)document.body.appendChild(elink)elink.click()URL.revokeObjectURL(elink.href) // 释放URL 对象document.body.removeChild(elink)} else { // IE10+下载navigator.msSaveBlob(blob, decodeName)}
}
  • 说回刚开始的问题,下载时文件始终提示被破坏的原因:
    export async function downloadAnnex(data){这里应该使用async关键字
    const res = await axios.get请求时也应该使用await关键字,这样就可以使文件顺利下载,至于为什么还没有深究。。。(想以后研究,不知道以后还能不能想起来了😅)
  • 文件名始终乱码,就使用decodeURI(fileName);进行解码,之后就可以正确的展示中文字符了,前提时后端传输时已经设置了UTF-8的编码
http://www.yayakq.cn/news/331926/

相关文章:

  • 科技公司网站模版如何查询网站被百度收录
  • 云南网络公司网站建设一个空间怎么放2个网站
  • 炉火建站wordpress 导出数据库
  • 定制商品的网站建设各类软件代理加盟
  • 怎么用frontpage做网站网络平台制作软件教程
  • 用php做网站需要什么wordpress 管理菜单
  • 为企业为什么做网站做钓鱼网站教程
  • 网站建设公司财务预算凡科互动投票破解
  • 办个网站需要多少钱曹县 做网站的公司
  • 网络课程网站模板室内设计师之路网站
  • 三合一网站建设什么意思乐享黔程是什么公司
  • seo网站页面优化遵化网站建设
  • 网站建设好后怎么制作网页在哪个网站注册域名
  • 哪个网站可以用来做读书笔记用什么软件搭建网站源码
  • 网站建站模板网站建设优化服务资讯
  • 成都设计公司推荐温州网站优化关键词
  • 南通网站排名公司中国房地产100强名单
  • 大竹网站建设微博推广的好处
  • 广州网站设计开发技术开发公司官网
  • 中企动力网站建设公司如何通过国外社交网站做外销
  • 公司自己做网站多少费用网页设计公司创业计划书
  • 招聘网站是怎么做推广安阳网站建设哪里最好
  • 开发个网站开票名称是什么宝塔面板加wordpress建站
  • 如何用个门户网站做销售天工网工程信息网官网
  • 网站建设工作流程htmlyp77731域名查询
  • 北京怀柔做网站管理运营的公司做网站网站违法吗
  • 哪里有网站建设流程做那种网站受欢迎
  • 文库类网站建设建议及经验网站开发和软件开发区别
  • 个人网站免费制作网页设计实训报告总结与收获
  • 网站建设实现用户登录wordpress主题图片丢失