距离上次更新博文已经快一个月了,忙于各种事情,抽不出来。今天是难得的闲暇,以后再更新吧。。。在上一篇文章中,我们学习了如何在下载React中上传文件。虽然不是什么高深的技术,但是会让我们在实际开发中更加得心应手。今天继续更新另一个相关技术-->文件下载看过上一篇博文的朋友应该都有印象,文件上传的功能可以使用Form表单、fetch(Ajax或Axios)以及Form+fetch方式。后台使用了express框架。由于fetch请求涉及到跨域问题,后台也使用了Cors中间件来解决跨域问题。这一点在之前的博文中有提到,这里不再赘述。本文提到的文件下载也是基于Form和fetch(Ajax或Axios均可)。慢慢听...FormForm可谓是前端界的万灵药。精通各类数据提交、上传、下载。最重要的是:不需要考虑跨域。使用Form表单下载文件非常简单。只需要几行代码就搞定了:classFormDownloadextendsComponent{render(){return(type="submit">Download!)}}exportdefaultFormDownload;仅这一小段代码就可以实现文件的下载,是不是很开放?Fetch与Form相比,使用Fetch下载文件既麻烦又冗长。为什么?上面代码firstclassFetchDownloadextendsComponent{download=()=>{fetch('http(s)://下载文件的后台接口').then(res=>res.blob().then(blob=>{leta=document.createElement('a');leturl=window.URL.createObjectURL(blob);letfilename=res.headers.get('Content-Disposition');if(filename){filename=文件名。match(/\"(.*)\"/)[1];//提取文件名a.href=url;a.download=filename;//给下载的文件命名a.click();window.URL.revokeObjectURL(url);a=null;}}));};render(){return(
