0

Node.js サーバーから (Express を使用して) ファイルをダウンロードする際に問題があります。リクエストは適切に処理され、既存のファイルに対して response.download ファイルが呼び出されます。しかし、データがクライアントで受信されると、すべてのデータが受信されるわけではなく、そこから作成された BLOB はほぼ 2 倍のサイズに肥大化します。

既存のバックエンドの再実装である /php/mixMovie.php に投稿をルーティングするサーバー部分 (Express を使用する Node.js) は次のとおりです。

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 

ここで何が起こっているか知っている人はいますか?

ありがとう、

J

4

1 に答える 1