需求里包括文件下载导出excel表格,现在总结一下

优采云 发布时间: 2021-05-16 23:31

  需求里包括文件下载导出excel表格,现在总结一下

  此问题的要求包括文件下载和导出excel表格,现总结如下:

  1) window.open()和window.location.href链接以获取详细信息:

  window.open()将在下载文件时打开一个新页面,并同时公开链接地址,并在文件下载过程中两次访问该链接。尽管前端仅下载一次文件,但该服务将生成2个文件。

  2)表格

  使用动态生成的表单元素提交表单并完成下载。请注意,此处将没有ajax。原则是仅提交表单。

  因为jQery的ajax函数和ajaxSubmit函数的返回类型(数据类型),所以只有xml,text,json,html和其他类型,所以没有'stream'类型,因此仅当我们不能使用对应的类型时,实现ajax下载ajax函数执行文件下载。

  但是我们可以通过js生成一个表单,使用该表单提交参数,并返回“ stream”,输入数据。在实施过程中,页面没有刷新。

  参考文件:

  获取请求

  3) a标签(兼容性差,Chrome没问题。百度可用于详细说明)

  如果需要在下载文件之前进行一些操作,则需要在click事件中创建一个元素。此时,最好不要在html中收录一个元素,否则a标记的默认事件与a.click()发生冲突,将会出现一些小问题。

  4) iframe

  如果它是处于get模式的url下载链接,则客户端可以通过动态生成的隐藏iframe获取下载的二进制文件。原理:iframe具有src属性,其本质是发送http请求,获取页面或数据。

  上述方法存在一些兼容性问题,并且存在浏览器直接解析.txt和.xml文件的风险。因此,我在Internet上搜索了downloadjs插件,但是我在项目中使用的downloadjs并不易于使用

  以上所有方法最好将名利,点击事件提交到异步操作中,例如延迟器。

  4)插件download.js(有关详细信息,请参见官方网站:)

  npm安装downloadjs

  然后通过“ download.js”中的导入下载来导入使用过的文件

  最后使用download()方法

  名为download(data,strFileName,strMimeType)的下载方法对应于:download(“ data”,“您想要的名称”,“ Mime类型”),当您不编写接下来的两个参数时,可以指定的文件已下载(不支持跨域)。源代码非常简单。如果没有以下参数,它将通过ajax发送一个get请求,以获取url的二进制流,然后将二进制流转换为一个对象以完成下载。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线