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

祖庙网站建设公司电商软文范例

祖庙网站建设公司,电商软文范例,动态网站期末设计,做推送用什么网站遇到的问题: 文件下载后文件一直被破坏,无法正常打开文件名乱码,如图 刚开始一直在纠结,是不是后端没有写对,然后导致下载不能使用 后来搜索了一些资料,发现后端没什么问题 然后就开始找到其他项目对比…

遇到的问题:

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

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

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

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

哈哈哈哈哈哈哈

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

下载功能后端代码

    @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.15wanjia.com/news/57176.html

相关文章:

  • 建网站挣钱靠谱吗苏州seo怎么做
  • 如何做网站?私人网站服务器
  • 商城web网站开发百度快照怎么做
  • 青岛模板建站多少钱网络营销典型案例
  • 新的网站平台如何做地推百度公司地址
  • 5在线做网站如何设计企业网站
  • 建设企业展示网站爱站seo
  • 网站备案负责人修改360搜索引擎推广
  • 教育网站设计方案seo优化公司哪家好
  • 网站的分类有哪些找客户资源的软件哪个最靠谱
  • 做网站用的小图标今天的新闻有哪些
  • 网站的支付系统怎么做在线培训app
  • 查询网站备案查询深圳网络推广服务是什么
  • 山东德州网站建设哪家最好网站结构有哪几种
  • 动效做的好的网站企业网站优化
  • 网站建设扌首选金手指萧山区seo关键词排名
  • 南昌网站开发建设长沙网络推广营销
  • 模拟创建一个公司石家庄百度快照优化排名
  • 个人网站设计论文道客巴巴百度客服中心人工在线咨询
  • 武汉汉口做网站哪家好社群营销的案例
  • 58同城深圳招聘网站个人自己免费建网站
  • 大型网站制作哪家好品牌软文案例
  • 广东网站建设便捷可以访问违规网站的浏览器
  • 郑州做网站九零后找代写文章写手
  • 淘特app官方网站下载竞价推广哪里开户
  • 福州专业建站公司短链接生成网址
  • 佛山做网站上海好的seo公司
  • 有想做企业网站建设推广公众号
  • 东莞视频网站制作今日军事新闻头条视频
  • 刷赞网站推广软件网站维护工程师