我从 Node.js 服务器(使用 Express)下载文件时遇到问题。该请求得到了正确处理,并且在现有文件上调用了 response.download 文件。但是当客户端接收到数据时,并不是所有的数据都被接收到,并且从它创建的 blob 膨胀到几乎两倍的大小。
服务器部分(使用 Express 的 Node.js),我将帖子路由到 /php/mixMovie.php,重新实现现有后端,是这样的:
app.post( '/php/mixMovie.php', function( request, response ){
....
console.log( 'serving ' + destFile );
fs.stat( destFile, function (err, stats) {
console.log(stats.size);
});
response.download( destFile );
});
给出控制台输出:
serving /Users/j/[...]/WTSc5e8f500-ad76-4fe5-b368-3a0f3e848813.ogg
326049
serving /Users/j/[...]/WTSc5e8f500-ad76-4fe5-b368-3a0f3e848813.ogg
326049
...
客户端有这个javascript代码:
$.ajax({
type: 'POST',
url: 'http://localhost:8000/php/mixMovie.php',
data: fd,
processData: false,
contentType: false
} ).done( function( data ){
console.log( data.length );
var bb = new Blob( [ data ], { type:'movie/ogg' } );
console.log( bb.size );
} );
给出这个令人惊讶的输出:
XHR finished loading: ("http://localhost:8000/php/mixMovie.php"). jquery-1.8.3.js:8434
314947
600641
XHR finished loading: ("http://localhost:8000/php/mixMovie.php"). jquery-1.8.3.js:8434
315028
600737
XHR finished loading: ("http://localhost:8000/php/mixMovie.php"). jquery-1.8.3.js:8434
315020
600439
XHR finished loading: ("http://localhost:8000/php/mixMovie.php"). jquery-1.8.3.js:8434
315026
600421
有谁知道这里发生了什么?
谢谢,
Ĵ