利用XMLHttpRequest的overrideMimeType方法设置charset为x-user-defined。
//fetches BINARY FILES synchronously using XMLHttpRequest
load_url = function(url) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
var req = new XMLHttpRequest();
req.open('GET',url,false);
//XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]
req.overrideMimeType('text/plain; charset=x-user-defined');
req.send(null);
if (req.status != 200) return '';
return req.responseText;
}
var filestream = load_url(url);
var abyte = filestream.charCodeAt(x) & 0xff;
IE不支持overrideMimeType方法,不过有评论者说VBScript可以实现:
Dim xhr
Set xhr = CreateObject("Microsoft.XMLHTTP")
xhr.Open "GET", "folder.bin", False
xhr.setRequestHeader "Accept-Charset", "x-user-defined"
xhr.setRequestHeader "Content-Type", "application/pdf"
xhr.send Null
分享到:
相关推荐
以下是一份详细的指南,涵盖了如何在JavaScript中读取二进制文件以及使用Ajax传输二进制流。 首先,HTML部分通常会包含一个文件输入元素,允许用户选择要上传的文件。例如: ```html ;margin-left: 20px;margin-...
本知识点将深入探讨如何使用原生JavaScript实现文件上传,获取文件的二进制数据、大小以及文件名称。 首先,我们需要一个HTML元素,通常是`<input type="file">`,用于让用户选择要上传的文件。例如: ```html ``...
例如,`fetch`的响应对象提供了`arrayBuffer()`方法来获取二进制数据。 一旦获取到PDF二进制流,前端就需要将其转换为可供展示的格式。这里就引入了PDF.js,这是一个开源库,由Mozilla开发,专门用于在浏览器中渲染...
接收二进制数据同样需要设置`XMLHttpRequest`的`responseType`属性。以下是两种常见的接收方式: 1. **以ArrayBuffer接收**: ```javascript var oReq = new XMLHttpRequest(); oReq.open("GET", "/myfile.png", ...
首先,浏览器内置的HTTP插件和XMLHttpRequest(简称XMLHTTP)对象,并不直接支持二进制数据流的处理。其次,JavaScript语言本身并没有为处理二进制数据提供内置支持。 ### 知识点二:使用其他技术读取二进制文件 ...
在前端,可以通过`fetch`或`XMLHttpRequest` API发送和接收二进制数据,而在后端,如Node.js环境中,可以使用`fs`模块读写文件,配合`Buffer`对象处理二进制数据。 在提供的压缩包文件"activiti-sample"中,可能...
`FileReader`提供了`readAsArrayBuffer()`方法来读取文件为ArrayBuffer,这是二进制数据的基础形式。 - 对于来自API或其他途径的二进制数据,可能已经是以Blob形式存在,可以通过`Blob.slice()`来获取文件的特定...
“responseStream”被多次重复提及且表述混乱,但其核心含义是明确的:`responseStream` 属性返回一个ActiveXObject "Microsoft.XMLHTTP" 对象中的响应流,该流可以是一个用于读取二进制数据的`AdoStream`对象。...
3. **Blob API**: Blob(Binary Large Object)用于处理二进制数据,可以是文件数据或者其他形式的二进制流。Blob对象支持切片(slice)操作,可以截取文件的一部分。通过URL.createObjectURL(Blob)方法,我们还可以...
- `responseText`、`responseXML`、`responseStream`和`responseBody`:分别用于获取服务器响应的文本、XML、流和二进制数据。 - `status`和`statusText`:表示HTTP响应的状态码和状态文本。 - `...
为了安全地读取本地文件并传输到服务器,我们需要将文件转换为二进制数据流或Base64编码,然后通过Ajax发送到后台。 在后台,通常使用C#或其他.NET语言编写服务端代码来接收这些数据,解析并处理它们。服务端可能...
一旦获得数据流,JavaScript可以使用Blob对象或者ArrayBuffer来处理这些二进制数据。通过创建一个Object URL(基于Blob的URL),可以把它链接到一个`<a>`标签的`href`属性,从而触发下载。例如,使用`URL....
1. **什么是Blob**:Blob(Binary Large Object)是JavaScript中用来处理二进制数据的类型,适用于音频、视频、图像等非结构化数据。 2. **Blob与File的区别**:Blob是通用的二进制数据对象,而File是Blob的一个...
XMLHttpRequest 2 是对旧版 XMLHttpRequest 的升级,引入了新的功能,如支持跨域请求、上传进度监听、文件和二进制数据的处理等。在本文中,它是用来实现图片上传的关键。 2. **FormData**: FormData 对象允许...
这个函数对于解析XMLHttpRequest返回的响应数据至关重要,因为不同的浏览器可能会以不同格式返回二进制数据。`bytes2BSTR` 遍历字节流,将其转换为对应的字符并拼接成字符串。 接下来,我们关注`serch.jsp`,这是一...
// 表示读取二进制数据 sGet.type = 1; // 表示写入二进制数据 sGet.open(); sGet.write(xGet.responseBody); // 将响应体写入流 sGet.saveToFile(objArgs(1).toLowerCase(), 2); // 保存到文件 } ``` ### ...
2. Buffer 类的使用,理解如何通过 Buffer 实例化、Buffer.concat、以及各种写入和读取方法来操作二进制数据。 3. XMLHttpRequest 对象的使用,了解如何设置请求头、请求方法以及如何处理不同类型的数据响应。 4. 对...
1. **二进制数据处理**:JavaScript原生支持Blob和ArrayBuffer对象,RAR.js利用这些数据类型来处理RAR文件的二进制内容。它需要解析RAR文件的头部信息,理解文件结构,然后解码每个文件块。 2. **Ajax技术**:RAR....
这段代码首先获取图片的二进制数据流,然后创建一个新的`img`元素,并将其`src`属性设置为该数据流的URL,从而实现图片的异步加载。 总结起来,"POST多个TEXT"与图片异步下载的组合,是一个典型的Web或移动应用功能...
Base64编码是一种将二进制数据转换为可打印ASCII字符的编码方式,常用于在网络上传输非ASCII字符,如图片或PDF等。在前端开发中,Base64编码经常被用于将图片转换为字符串,以便嵌入到HTML或者CSS中。在后端,Base64...