【技术实现步骤摘要】
跨域文件下载方法及装置
本专利技术涉及文件下载
,特别是涉及一种跨域文件下载方法及装置。
技术介绍
随着互联网技术的快速发展,用户对网络中的资源需求量逐渐增加。当用户应用浏览器下载任意的文件时,需要在a标签中设置下载download属性,以实现对文件的下载。当待下载的文件为同源文件时,即待下载的文件所属的服务器与该浏览器的域名、协议和端口相同时,可直接根据同源文件的文件的名称进行下载。当待下载的文件为跨域文件时,即待下载的文件所属的服务器与该浏览器的域名或协议或端口不同时,download属性会失效,无法成功对跨域文件进行下载。现有技术中,为保证对跨域文件的下载,需要通过后端服务器与跨域文件所属的目标服务器进行通讯,并通过后端服务器请求目标服务器返回文件后,再由后端服务器将资源返回前端的浏览器。因此,现有技术的方法加重了后端工作人员的开发过程,且浪费后端服务器的空间和资源。
技术实现思路
有鉴于此,本专利技术提供一种跨域文件下载方法,通过该方法,无需通过后端服务器进行跨域文件的下载和转发,由浏览器直接下载跨域文件,减少后端服务器空间和资源的浪费。本专利技术还提供了一种跨域文件下载装置,用以保证上述方法在实际中的实现及应用。一种跨域文件下载方法,包括:当用户通过浏览器下载跨域文件时,生成所述跨域文件对应的Ajax请求;将所述Ajax请求发送至所述跨域文件所属的目标服务器中,以使所述目标服务器依据所述Ajax请求,返回所述跨域文件对应的二进制大对象 ...
【技术保护点】
1.一种跨域文件下载方法,其特征在于,包括:/n当用户通过浏览器下载跨域文件时,生成所述跨域文件对应的Ajax请求;/n将所述Ajax请求发送至所述跨域文件所属的目标服务器中,以使所述目标服务器依据所述Ajax请求,返回所述跨域文件对应的二进制大对象blob数据;/n调用预先设置的地址创建指令,将所述blob数据转换成blob URL;/n生成携带所述blob URL的超链接,并通过触发所述超链接跳转至所述目标服务器下载所述跨域文件。/n
【技术特征摘要】
1.一种跨域文件下载方法,其特征在于,包括:
当用户通过浏览器下载跨域文件时,生成所述跨域文件对应的Ajax请求;
将所述Ajax请求发送至所述跨域文件所属的目标服务器中,以使所述目标服务器依据所述Ajax请求,返回所述跨域文件对应的二进制大对象blob数据;
调用预先设置的地址创建指令,将所述blob数据转换成blobURL;
生成携带所述blobURL的超链接,并通过触发所述超链接跳转至所述目标服务器下载所述跨域文件。
2.根据权利要求1所述的方法,其特征在于,所述将所述Ajax请求发送至所述跨域文件所属的目标服务器中,以使所述目标服务器依据所述Ajax请求,返回所述跨域文件对应的二进制大对象blob数据,包括:
设置数据返回格式为blob格式,并生成所述blob格式对应的数据返回信息;
将所述数据返回信息嵌入所述Ajax请求,并向所述目标服务器发送携带所述数据返回信息的Ajax请求,以使所述目标服务器在接收到携带所述数据返回信息的Ajax请求后,依据所述数据返回信息,将所述跨域文件的文本数据转换成blob数据,并向所述浏览器返回所述blob数据。
3.根据权利要求1所述的方法,其特征在于,所述生成携带所述blobURL的超链接,并通过触发所述超链接跳转至所述目标服务器下载所述跨域文件,包括:
创建超链接标签,并设置超文本引用href属性,依据所述超链接标签、所述href属性及所述blobURL生成超链接;所述href属性用于指向所述blobURL;
将所述超链接添加至所述浏览器的body元素中,以通过所述浏览器的浏览器页面显示所述超链接;
当所述用户通过所述浏览器页面点击所述超链接时,在所述浏览器页面上弹出所述跨域文件对应的下载指示窗口;
当接收到所述用户经由所述下载指示窗口发送的下载触发消息时,依据所述blobURL跳转至所述目标服务器下载所述跨域文件。
4.根据权利要求3所述的方法,其特征在于,还包括:
在所述超链接中创建下载download属性,并依据所述download属性设置所述跨域文件的文件名;
在将所述超链接添加至所述浏览器的body元素中时,通过所述浏览器页面显示所述文件名,以使所述用户通过点击所述文件名实现对所述跨域文件的下载。
5.根据权利要求1或3任意一项所述的方法,其特征在于,还包括:
当所述跨域文件下载完成,调用预先设置的地址撤销指令,将所述body元素中的超链接删除,并销毁所述blobU...
【专利技术属性】
技术研发人员:唐禹轩,方鸿灏,康恺暄,
申请(专利权)人:湖南快乐阳光互动娱乐传媒有限公司,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。