a链接下载文件名乱码
react项目中,用a链接下载后文件名不能正常显示
百度了下,原因是我们上传到阿里云的时候,后端为了区分每个人上传的文件,会生成随机码作为文件的名字,也就避免了有些文件名相同的情况。
其实在a标签的属性 download中可以指定下载的文件名,但是href属性的地址必须是和前端js非跨域的地址,如果是引用第三方网站,或者是前后端分离的项目,download属性就会失效。如果使用本地相对路径的地址download则会起作用。
<a href="/file/模版.doc" download="模版">点击下载</a>
但是我们可以通过指定responseType来实现指定文件名
handleDownFile = (e, item) => {e.stopPropagation();if (item.url) {const a = document.createElement('a');a.href = item.url;a.target = '_blank';a.download = item.name;const xhr = new XMLHttpRequest();xhr.responseType = 'blob';xhr.onload = function() {a.href = URL.createObjectURL(xhr.response);document.body.appendChild(a);a.click();a.remove();};xhr.open('GET', a.pathname);xhr.send();}}<div onClick={(e) => this.handleDownFile(e, item)}>点击下载
</div>
这样,下载下来的文件就是正常的文件名了
a链接下载文件名乱码相关推荐
- php ie 下载 乱码,php ie下载文件名乱码怎么办
php ie下载文件名乱码的解决办法:1.通过header方法解决乱码:2.通过"function remote_filesize($uri,$user='',$pw='') {...}&q ...
- java文件名的编码格式_java下载文件名乱码解决方法详解
java下载文件名乱码的方法:(推荐:java视频教程) 每个浏览器的编码不一样,火狐采用的是base64.ie和谷歌采用的是url编码: 所以我们在设置响应头的时候Content-Type getS ...
- java下载文件名乱码的解决方法
java下载文件名乱码的解决方法 参考文章: (1)java下载文件名乱码的解决方法 (2)https://www.cnblogs.com/liyabin/p/7891073.html 备忘一下.
- 火狐浏览器下载文件名乱码
##火狐浏览器下载文件名乱码 response.setHeader("Content-Disposition","attachment;filename*=utf-8'z ...
- IE浏览器下载文件名乱码
解决IE浏览器下载文件名乱码额问题 //下载的文件名为fileNameString fileName = "登录登出日志统计" + DateUtils.yyyyMMddHHmmss ...
- java web 下载文件名乱码
Web开发下载文件功能(代码如下),文件名如果带有中文,经常会出现乱码现象,需要进行编码. String fileName = "测试文件.doc"; try {HttpServl ...
- 解决wget下载文件名乱码的一些方法
在下载用apache或者nginx做的索引目录时,遇到文件名乱码问题.搜索了不少资料,尝试了好几种方案,大家可以结合使用. 一般情况下加上–restrict-file-names=nocontrol参 ...
- 开发者日记1-文件下载文件名乱码(所有语言通用下载设置)
源头 作为一个原Java开发者,在之前所开发的项目中,做文件下载我们有一个方法,就是获取User-agent然后去判断这个user-agent的请求头去依次根据浏览器去转换我们返回时的文件名称 文件下 ...
- java ie下载文件名乱码问题_php中强制下载文件的代码(解决了IE下中文文件名乱码问题)...
中间遇到一个问题是提交的中文文件名直接放到header里在IE下会变成乱码,解决方法是将文件名先urlencode一下再放入header,如下. $file_name = urlencode($_RE ...
- Java解决下载--文件名乱码
最近常有人问到下载文件文件名出现乱码问题,今天统一给出解决方案如下 通常都会通过URLEncoder转码的方式来解决,关键代码如下: response.setContentType( "ap ...
最新文章
- android:使用Messenger进行进程间通信(一)
- JQUERY 阻止a 标签链接
- “大院大所”合作对接活动专场推介会侧记
- 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”...
- 计算机教学辅助在教学中的应用研究,云计算辅助教学在高职计算机教学中的应用研究.doc...
- linux中sudo如何读取标准输入作为密码,避免每次都输入密码?
- 什么是 MultiRaft ?
- POJ 1200 Crazy Search 查找有多少种不同的子串(hash)
- django表单提交案例
- 我与我的CSDN博客的第一天
- 简历 java技能_java软件工程师简历专业技能填写样本
- Calibre Umd Plugin (插件)
- mysql三表联查sql语句_SQL三表连接查询与集合的并、交、差运算查询
- 20 行 Python 代码批量抓取免费高清图片!
- 国际多语言版抖音快手脸书LINETIKTOK悬赏平台
- DolphinScheduler服务启停
- 蛋糕上两只翘着二郎腿的小胖猪可爱极了
- 11g-sql plan management
- Aliplayer 切换不同格式视频
- 华为OD机试真题 C++ 实现【获取最大软件版本号】【2022.11 Q4 新题】