1

私はすでにすべてのインターネットをグーグルで検索しましたが、まだ問題が見つかりませんでした。マルチパートを使用してnodejsにアップロードしていますが、すべてのファイルが破損しています。多くの解析ソリューションを使用しましたが、手ごわい方法で実行できますが、自分で解析する方法を学びたいです。出力ファイルのバイナリ コードは、元の [サイズとバイナリ (チェックには hexdump -C int ターミナルを使用しました)] とまったく同じです。

コードのサンプルを次に示します。

var http = require("http");
var fs = require("fs");

http.createServer(function(req, res){
    if(!((req.url === "/upload") && (req.method === "POST"))){
        home(res);
    }else{
        upload(req, res);
    }
}).listen(8888);

function home(res){
    res.end("<html><body><form action='/upload' method='post' enctype='multipart/form-data''><input name='file' type='file'/><input type='submit'></form></body></html>");
}

function upload(req, res){
   
    var data = "";
    req.setEncoding("binary");
    req.addListener("data", function(chunk){
        data = chunk.split("\r\n")[4];/*This was my last chance, but it also failed*/
    });
    req.addListener("end", function(){
        res.end();
        console.log(data);
        fs.writeFile("icone.ico", data, "binary", function(err){/*I also used fs.createWriteStream*/
            console.log("done");
        });
    });
}

4

1 に答える 1

0

マルチパート リクエストを送信しています。これは、アップロードしている単一のファイルの生のコンテンツだけでなく、各部分が個別のフォーム フィールドである複数の部分を可能にする特別な形式であることを意味します (この場合、ファイル フォーム フィールドは 1 つの部分しかありません)。 . 、、またはmultipart/form-dataなどのリクエストを解析できるモジュールの使用を検討する必要があります。busboymultipartyformidable

于 2014-10-20T23:59:41.680 に答える