joe*_*erx 14 javascript angularjs
好的,所以我尝试读取这样的PDF文件:
reader.readAsArrayBuffer(file);
Run Code Online (Sandbox Code Playgroud)
然后尝试使用以下方式将其发送到服务器$http
:
$http.put(url, data, {headers: {'Content-Type': 'application/pdf'}});
Run Code Online (Sandbox Code Playgroud)
因此,只需以原始形式读取并将二进制文件发送到服务器.据一些资源,我发现,传递一个ArrayBuffer以XHR
应工作,但将它作为数据$http
只是导致的请求body
是这样的:{}
和Content-Length=2
读取文件会readAsBinaryString()
导致文件损坏(由于这个原因,显然已弃用)
用例对我来说似乎微不足道,我错过了什么?
Chrome 36,Angular 1.2.20
小智 30
你必须reader.readAsArrayBuffer(file);
在onload
回调中使用然后ArrayBufferView
从结果中创建一个:
new Uint8Array(reader.result)
Run Code Online (Sandbox Code Playgroud)
将该数据传递给$http
并覆盖该transformRequest
属性,以便angularjs不会将您的数组编码为json:
reader.onload = function() {
$http({
method: 'PUT',
headers: {'Content-Type': 'application/pdf'},
data: new Uint8Array(reader.result),
transformRequest: []
})
};
reader.readAsArrayBuffer(file);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15227 次 |
最近记录: |