首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《你不知道 Blob》番外篇

图片本地预览 + 分片上传 实现本地预览: input 获取到 file 对象,通过实例化 FileReader ,赋值给变量 reader ,调用reader readAsDataURL 方法...互联网下载数据 在实现“互联网下载数据”方法时,我们使用 createObjectURL 显示图片,在请求互联网图片时,我们有两种方式: 使用 XMLHttpRequest ;...下载 const url = "http://images.pingan8787.com/TinyCompiler...下载文件 通过调用 Blob 构造函数来创建类型为 "text/plain" Blob 对象,然后通过动态创建 a 标签来实现文件下载。...对比发现,ArrayBuffer 数据,是可以按照字节去操作,而 Blob 只能作为一个完整对象去处理。所以说,ArrayBuffer 相比 Blob 更接近真实二进制,更底层。 2.

2.4K00
您找到你想要的搜索结果了吗?
是的
没有找到

【笔记】618- 读《你不知道 Blob》笔记

图片本地预览 + 分片上传 实现本地预览: input 获取到 file 对象,通过实例化 FileReader ,赋值给变量 reader ,调用reader readAsDataURL 方法...互联网下载数据 在实现“互联网下载数据”方法时,我们使用 createObjectURL 显示图片,在请求互联网图片时,我们有两种方式: 使用 XMLHttpRequest ; 使用 fetch ;...()">使用 fetch 下载 const url = "http://images.pingan8787...下载文件 通过调用 Blob 构造函数来创建类型为 "text/plain" Blob 对象,然后通过动态创建 a 标签来实现文件下载。...对比发现,ArrayBuffer 数据,是可以按照字节去操作,而 Blob 只能作为一个完整对象去处理。所以说,ArrayBuffer 相比 Blob 更接近真实二进制,更底层。 2.

3.3K40

XMLHttpRequest使用指南大全

图中可以看到: IE8/IE9、Opera Mini 完全不支持xhr对象 IE10/IE11部分支持,不支持 xhr.responseType为json 部分浏览器不支持设置请求超时,即无法使用xhr.timeout...部分浏览器不支持xhr.responseTypeblob 细说XMLHttpRequest如何使用 function sendAjax() { //构造表单数据 var formData =...xhr.timeout = 3000; //设置响应返回数据格式 xhr.responseType = "text"; //创建一个 post 请求,采用异步 xhr.open(...再举一个使用场景,我们都知道xhr level 1不支持直接传输blob二进制数据,那如果真要传输 blob 该怎么办呢?当时就是利用overrideMimeType方法来解决这个问题。...,通过 response content-type 改为'text/plain; charset=x-user-defined',使得 xhr 以纯文本格式来解析接收到blob 数据,最终用户通过

1.3K30

你不知道 Blob

如果你允许用户网站上下载某些文件,那你可能会遇到 Blob 类型。为了实现上述功能,你可以很容易网上找到相关示例,并根据实际需求进行适当调整。...,我们调用 response 对象 blob() 方法, response 对象中读取一个 Blob 对象,然后使用 createObjectURL() 方法创建一个 objectURL,然后把它赋值给...3.3 Blob 用作 URL Blob 可以很容易作为 、 或其他标签 URL,多亏了 type 属性,我们也可以上传/下载 Blob 对象。...下面我们举一个 Blob 文件下载示例,不过在看具体示例前我们得简单介绍一下 Blob URL。...); }); 在示例中,我们通过调用 Blob 构造函数来创建类型为 “text/plain” Blob 对象,然后通过动态创建 a 标签来实现文件下载

4K20

你真的会使用XMLHttpRequest吗?

图中可以看到: IE8/IE9、Opera Mini 完全不支持xhr对象 IE10/IE11部分支持,不支持 xhr.responseType为json 部分浏览器不支持设置请求超时,即无法使用...xhr.timeout 部分浏览器不支持xhr.responseTypeblob 细说XMLHttpRequest如何使用 先来看一段使用XMLHttpRequest发送Ajax请求简单示例代码...xhr.timeout = 3000; //设置响应返回数据格式 xhr.responseType = "text"; //创建一个 post 请求,采用异步 xhr.open('POST...再举一个使用场景,我们都知道xhr level 1不支持直接传输blob二进制数据,那如果真要传输 blob 该怎么办呢?当时就是利用overrideMimeType方法来解决这个问题。..." String字符串 "document" Document对象 希望返回 XML 格式数据时使用 "json" javascript 对象 存在兼容性问题,IE10/IE11不支持 "blob" Blob

1.5K30

angular页面打印局部功能实现方法思考

测试一页A4纸适合页面840px-1225px 打印文件里会自动添加页面标题和日期,下方会自动添加页面地址,不知道如何去掉 在后台生成pdf页面显示自带打印下载功能 1、后台生成PDF文件,返回二进制流...2、在不需要token信息情况下,并且支持get请求,可以在浏览器中直接打开该地址。或者通过a标签来实现下载和页面显示。并实现打印功能。...3、需要token验证情况下,使用blob类型来接收数据,并创建一个本地地址供浏览器访问,后面操作如第二步。 private down(url: string, body?...: any) { return this.http.post(url, body || null, { responseType: 'blob' }) } private...pdf, 如果不传入文件名会再浏览器中打开 实现打印功能 * 传入文件名会直接下载 * @param {string} url * @param body * @param {

1.6K20

前端如何下载文件流

前言 如果后台返回是文件地址,那么前端直接通过 window.location.href 加文件地址,就可以下载文件; 但是如果后台返回是文件流,那么前端就需要做一些处理; 其实前端处理核心:就是文件流转为文件...封装一个下载工具 这个工具作用就是,获取文件流转为文件,并模拟点击该文件,实现下载 先贴代码,download.js(可直接复制使用) export const download = (res,..."arraybuffer";如果不设置则下载下来pdf会是空白 responseType: 'arraybuffer' }) // 调用封装好下载函数 download...(res, 'application/pdf;charset=UTF-8', moment().format('YYYYMMDD') + '.pdf') } 关于responseType可参考官网:XMLHttpRequest.responseType...加文件地址,就可以下载文件; 如果后台返回是文件流,那么前端就需要做一些处理:就是文件流转为文件,然后再模拟点击,进行下载

3.2K20

使用Promise封装一个 Ajax

你可以URL获取数据,而无需让整个页面刷新。这允许网页在不影响用户操作情况下更新页面的局部内容。在 Ajax 编程中 XMLHttpRequest 被大量使用。 ?...XMLHttpRequest.responseType 一个用于定义响应类型枚举值(enumerated value),可选值: 值 描述 "" responseType 设为空字符串与设置为"text..."arraybuffer" response 是一个包含二进制数据 JavaScript ArrayBuffer 。 "blob" response 是一个包含二进制数据 Blob 对象 。...这个对象是通过接收到数据类型视为 JSON 解析得到。 "text" response 是包含在 DOMString 对象中文本。..."ms-stream" response 是下载一部分;此响应类型仅允许下载请求,并且仅受Internet Explorer支持。

1.9K11

15个项目中会常用到 JS 工具函数代码

下载后端返回流 数据是后端以接口形式返回,调用1中download方法进行下载 download('http://111.229.14.189/gk-api/util/download?...提供一个图片链接,点击下载 图片、pdf等文件,浏览器会默认执行预览,不能调用download方法进行下载,需要先把图片、pdf等文件转成blob,再调用download方法进行下载,转换方式是使用axios...请求对应链接 //可以用来下载浏览器会默认预览文件类型,例如mp4,jpg等 import axios from 'axios' //提供一个link,完成文件下载,link可以是 http:/...这个方法实现是Lodash库中copy /** * * @param {*} func 要进行debouce函数 * @param {*} wait 等待时间,默认500ms * @param...,可以自己在代码中试一下 6 节流 多次调用方法,按照一定时间间隔执行 这个方法实现也是Lodash库中copy /** * 节流,多次触发,间隔时间段执行 * @param {Function

60440

关于ajax无刷新上传和下载

优点:兼容该死 ie 低版本浏览器 缺点:跨域上传不支持,还需自定义反向代理,因为 iframe onload 不支持跨域 上传接口 API: 成功返回: { code: 1, msg: '上传成功...缺点:现代浏览器会自动识别文件类型,如 pdf,会自动在浏览器打开 优雅一点下载: function download() { var a = document.createElement("a"...缺点:不支持 post 方式下载 使用 XMLHttpRequest,BLOB 方式 function download() { var url = "download/?...xhr.responseType = "blob"; // 返回类型blob // 定义请求完成处理函数,请求前也可以增加加载框/禁用下载按钮逻辑 xhr.onload = function...上传下载通用。 最好上传下载方式: 你们 Boss 不要求兼容 ie 低版本浏览器 [完]

2.5K20

前端vue 封装上传文件和下载文件方法 导入方法直接使用

'https://jiangsihan.cn/' //通过文件下载url拿到对应blob对象 function getBlob(url) { return new Promise(resolve...=> { const xhr = new XMLHttpRequest() xhr.open('GET', url, true) xhr.responseType = 'blob...,如果引用是第三方网站或者说是前后端分离项目(调用后台接口),这时download就会不起作用。...* 此时,如果是下载浏览器无法解析文件,例如.exe,.xlsx..那么浏览器会自动下载,但是如果使用浏览器可以解析文件,比如.txt,.png,.pdf....浏览器就会采取预览模式.../pdf浏览器则会判断文件为 pdf ,自动执行预览策略) */ 导入: import { downloadEvt } from "@/utils/download"; 使用: downloadEvt

2.7K10

前端文件下载(三)

我们之前分了两个篇幅文章分别讲解了: 前端文件下载(一) - 下载超链接文件 前端文件下载(二) - 通过 Blob 对象下载流文件 两篇文章讲解都是自动启动浏览器下载。...数据类型可以是 ArrayBuffer, Blob, Document, JS 对象,字符串等,这取决于 responseType 设置什么值 responseType 指定响应类型。...Content-Disposition 内容配置有以下值: 值 备注 attachment 控制文件下载。告诉浏览器响应体作为附件下载,而不是在浏览器中直接打开。...同时,可以设置 filename 参数指定下载文件名称,如上示例 inline 控制内联显示。告诉浏览器在页面中直接内联现实响应体,而不是下载。一些图片,PDF 等文件展示比较常用。...计算出拉取文件速度和剩余时间,并在页面中展示出来。当文件流拉取完后,到了我们老朋友 a 标签上场,处理该 blob 二进制对象数据,吊起浏览器下载

32340

手撸了一个网络请求工具类,开发速度迅速提升了300%

以便于操作Http网络请求,更加简单、便捷! 答案是肯定!...本文要介绍这个工具类,就是小编基于RestTemplate做了一层代码封装,里面涵盖了GET、POST、PUT、DELETE、文件上传与下载等等方法,同时支持自定义头部传参,通过灵活传参,可以满足绝大部分业务场景下网络请求场景..., uriVariables); return buildResponse(rsp); } /** * post请求,form表单提交(响应业务对象不支持范型...stream = httpTemplate.downloadFile(url, createHeader("downloadFile"), userName,fileName); // 下载下来文件内容保存到本地...//返回范型对象包装到ParameterizedTypeReference对象里面 ParameterizedTypeReference>

73720

.net pdf转word_pdf to word

oupstream = response.getOutputStream(); byte[] buffer = new byte[512]; // 缓冲区 int bytesToRead = -1; // 通过循环读入文件内容输出到浏览器中...oupstream = response.getOutputStream(); byte[] buffer = new byte[512]; // 缓冲区 int bytesToRead = -1; // 通过循环读入文件内容输出到浏览器中...","multipart/form-data"); xhr.responseType = "blob"; // 返回类型blob // 定义请求完成处理函数,请求前也可以增加加载框/禁用下载按钮逻辑...","multipart/form-data"); xhr.responseType = "blob"; // 返回类型blob // 定义请求完成处理函数,请求前也可以增加加载框/禁用下载按钮逻辑...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站立刻删除。

7.1K20

Blob

如果你允许用户网站上下载某些文件,那你可能会遇到 Blob 类型。为了实现上述功能,你可以很容易网上找到相关示例,并根据实际需求进行适当调整。...,我们调用 response 对象 blob() 方法, response 对象中读取一个 Blob 对象,然后使用 createObjectURL() 方法创建一个 objectURL,然后把它赋值给...3.3 Blob 用作 URL Blob 可以很容易作为 、 或其他标签 URL,多亏了 type 属性,我们也可以上传/下载 Blob 对象。...下面我们举一个 Blob 文件下载示例,不过在看具体示例前我们得简单介绍一下 Blob URL。...); }); 在示例中,我们通过调用 Blob 构造函数来创建类型为 "text/plain"  Blob 对象,然后通过动态创建 a 标签来实现文件下载

6.1K40

前端实现文件下载功能三种方式

>下载图片 已知文件地址,可以通过上面的方式地址放入href属性内,download属性存放下载文件名称,此属性为必须。...若文件地址为异步获取,即点击下载/导出按钮时才会接口拿,则可以通过js插入a标签来实现。...dom document.body.appendChild(a) // 点击标签,执行下载 a.click() // 标签dom移除 document.body.removeChild(a) 缺点:...此方式只适用于非图片和非pdf格式文件下载,当文件为图片或pdf时,浏览器会打开预览,而非下载。...读取操作为异步操作,当读取完成时,可以onload回调函数中通过实例对象result属性获取data:URL格式字符串(base64编码),此字符串即为读取文件内容,可以放入a标签href属性中

11K61

如何在前端下载后端返回文件流时,获取请求头中文件名称?

前言在前后端分离开发模式下,前端需要从后端获取文件流,以便进行文件下载。同时,前端还需要获取请求头中文件名称,以便为用户提供更加友好下载体验。...本文介绍如何在前端下载后端返回文件流时,获取请求头中文件名称。2. 获取文件流前端可以通过发送请求方式获取后端返回文件流。...下面是一个示例代码:axios({ method: 'get', url: '/download', responseType: 'blob'}).then((response) => { const...link.click();})在上述代码中,axios 是一个常用 HTTP 请求库。...responseType 参数设置为 blob,表示响应数据是二进制流。响应数据包含在 response.data 中,前端可以利用浏览器提供 Blob 接口文件流转换为下载链接。3.

5.5K01
领券