0

ファイルをアップロードするために Ajax 経由でデータを送信するのに問題があります。フォームからデータを直接送信すると、次のコードで動作します。

  var fs = require('fs');
  var fstream;
  var folder = 'public/images/tmp/'; 
  var path;
  var images = [];
  req.pipe(req.busboy);
  req.busboy.on('file', function (fieldname, file, filename) {                      
    if(filename){            
        if (!fs.existsSync(folder)) {                
            fs.mkdirSync(folder,0744);
        }            
        path = folder+ filename;
        fstream = fs.createWriteStream(path);
        file.pipe(fstream);  
    } else {
        path= undefined;            
    }
    images.push(path);
    res.send(images);
});   

ファイルはサーバーの一時フォルダーに送信されます。しかし、JavaScript に画像を返す必要があるため、そのデータを使用して他のアクションを実行できます。

今、私が考えているオプションは次のとおりです。 1-「data.send()」を回避してフォームを結果ビューにリダイレクトする方法を見つける

 $.ajax( {
            url: '/media',
            type: 'POST',
            data: new FormData(document.getElementById('#myFormId')),
            success: //do things,
            error: //do other things
        });

busboy で動作するようにデータを POST 関数に送信する必要があるか、ファイルをサーバーにコピーする別の方法があるかどうかはわかりません。

ありがとう。

4

0 に答える 0