跨域文件下载方法及装置制造方法及图纸

技术编号:24616447 阅读:34 留言:0更新日期:2020-06-24 02:46
本发明专利技术提供了一种跨域文件下载方法及装置,该方法包括:当用户通过浏览器下载跨域文件时,生成所述跨域文件对应的Ajax请求;将所述Ajax请求发送至所述跨域文件所属的目标服务器中,以使所述目标服务器依据所述Ajax请求,返回所述跨域文件对应的二进制大对象blob数据;调用预先设置的地址创建指令,将所述blob数据转换成blob URL;生成携带所述blob URL的超链接,并通过触发所述超链接跳转至所述目标服务器下载所述跨域文件。应用本发明专利技术提供的方法,无需通过后端服务器进行跨域文件的下载和转发,由浏览器直接下载跨域文件,减少后端服务器空间和资源的浪费。

Cross domain file download method and device

【技术实现步骤摘要】
跨域文件下载方法及装置
本专利技术涉及文件下载
,特别是涉及一种跨域文件下载方法及装置。
技术介绍
随着互联网技术的快速发展,用户对网络中的资源需求量逐渐增加。当用户应用浏览器下载任意的文件时,需要在a标签中设置下载download属性,以实现对文件的下载。当待下载的文件为同源文件时,即待下载的文件所属的服务器与该浏览器的域名、协议和端口相同时,可直接根据同源文件的文件的名称进行下载。当待下载的文件为跨域文件时,即待下载的文件所属的服务器与该浏览器的域名或协议或端口不同时,download属性会失效,无法成功对跨域文件进行下载。现有技术中,为保证对跨域文件的下载,需要通过后端服务器与跨域文件所属的目标服务器进行通讯,并通过后端服务器请求目标服务器返回文件后,再由后端服务器将资源返回前端的浏览器。因此,现有技术的方法加重了后端工作人员的开发过程,且浪费后端服务器的空间和资源。
技术实现思路
有鉴于此,本专利技术提供一种跨域文件下载方法,通过该方法,无需通过后端服务器进行跨域文件的下载和转发,由浏览器直接下载跨域文件,减少后端服务器空间和资源的浪费。本专利技术还提供了一种跨域文件下载装置,用以保证上述方法在实际中的实现及应用。一种跨域文件下载方法,包括:当用户通过浏览器下载跨域文件时,生成所述跨域文件对应的Ajax请求;将所述Ajax请求发送至所述跨域文件所属的目标服务器中,以使所述目标服务器依据所述Ajax请求,返回所述跨域文件对应的二进制大对象blob数据;调用预先设置的地址创建指令,将所述blob数据转换成blobURL;生成携带所述blobURL的超链接,并通过触发所述超链接跳转至所述目标服务器下载所述跨域文件。上述的方法,可选的,所述将所述Ajax请求发送至所述跨域文件所属的目标服务器中,以使所述目标服务器依据所述Ajax请求,返回所述跨域文件对应的二进制大对象blob数据,包括:设置数据返回格式为blob格式,并生成所述blob格式对应的数据返回信息;将所述数据返回信息嵌入所述Ajax请求,并向所述目标服务器发送携带所述数据返回信息的Ajax请求,以使所述目标服务器在接收到携带所述数据返回信息的Ajax请求后,依据所述数据返回信息,将所述跨域文件的文本数据转换成blob数据,并向所述浏览器返回所述blob数据。上述的方法,可选的,所述生成携带所述blobURL的超链接,并通过触发所述超链接跳转至所述目标服务器下载所述跨域文件,包括:创建超链接标签,并设置超文本引用href属性,依据所述超链接标签、所述href属性及所述blobURL生成超链接;所述href属性用于指向所述blobURL;将所述超链接添加至所述浏览器的body元素中,以通过所述浏览器的浏览器页面显示所述超链接;当所述用户通过所述浏览器页面点击所述超链接时,在所述浏览器页面上弹出所述跨域文件对应的下载指示窗口;当接收到所述用户经由所述下载指示窗口发送的下载触发消息时,依据所述blobURL跳转至所述目标服务器下载所述跨域文件。上述的方法,可选的,还包括:在所述超链接中创建下载download属性,并依据所述download属性设置所述跨域文件的文件名;在将所述超链接添加至所述浏览器的body元素中时,通过所述浏览器页面显示所述文件名,以使所述用户通过点击所述文件名实现对所述跨域文件的下载。上述的方法,可选的,还包括:当所述跨域文件下载完成,调用预先设置的地址撤销指令,将所述body元素中的超链接删除,并销毁所述blobURL。一种跨域文件下载装置,包括:生成单元,用于当用户通过浏览器下载跨域文件时,生成所述跨域文件对应的Ajax请求;发送单元,用于将所述Ajax请求发送至所述跨域文件所属的目标服务器中,以使所述目标服务器依据所述Ajax请求,返回所述跨域文件对应的二进制大对象blob数据;转换单元,用于调用预先设置的地址创建指令,将所述blob数据转换成blobURL;下载单元,用于生成携带所述blobURL的超链接,并通过触发所述超链接跳转至所述目标服务器下载所述跨域文件。上述的装置,可选的,所述发送单元,包括:设置子单元,用于设置数据返回格式为blob格式,并生成所述blob格式对应的数据返回信息;发送子单元,用于将所述数据返回信息嵌入所述Ajax请求,并向所述目标服务器发送携带所述数据返回信息的Ajax请求,以使所述目标服务器在接收到携带所述数据返回信息的Ajax请求后,依据所述数据返回信息,将所述跨域文件的文本数据转换成blob数据,并向所述浏览器返回所述blob数据。上述的装置,可选的,所述下载单元,包括:生成子单元,用于创建超链接标签,并设置超文本引用href属性,依据所述超链接标签、所述href属性及所述blobURL生成超链接;所述href属性用于指向所述blobURL;添加子单元,用于将所述超链接添加至所述浏览器的body元素中,以通过所述浏览器的浏览器页面显示所述超链接;弹出子单元,用于当所述用户通过所述浏览器页面点击所述超链接时,在所述浏览器页面上弹出所述跨域文件对应的下载指示窗口;下载子单元,用于当接收到所述用户经由所述下载指示窗口发送的下载触发消息时,依据所述blobURL跳转至所述目标服务器下载所述跨域文件。上述的装置,可选的,还包括:设置单元,用于在所述超链接中创建下载download属性,并依据所述download属性设置所述跨域文件的文件名;显示单元,用于在将所述超链接添加至所述浏览器的body元素中时,通过所述浏览器页面显示所述文件名,以使所述用户通过点击所述文件名实现对所述跨域文件的下载。上述的装置,可选的,还包括:删除单元,用于当所述跨域文件下载完成,调用预先设置的地址撤销指令,将所述body元素中的超链接删除,并销毁所述blobURL。一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述的跨域文件下载方法。一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行上述的跨域文件下载方法。与现有技术相比,本专利技术包括以下优点:本专利技术提供了一种跨域文件下载方法,包括:当用户通过浏览器下载跨域文件时,生成所述跨域文件对应的Ajax请求;将所述Ajax请求发送至所述跨域文件所属的目标服务器中,以使所述目标服务器依据所述Ajax请求,返回所述跨域文件对应的二进制大对象blob数据;调用预先设置的地址创建指令,将所述blob数据转换成blobURL;生成携带所述blobURL的超链接,并通过触发所述超链接跳转至所述目标服务器下载所述跨域文件。应用本专利技术提供的方法,无需通过后端服务器本文档来自技高网...

【技术保护点】
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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1