2014-04-12 19 views
7

Express.multipart, Express 4.x kitaplığından kaldırıldığından beri, expressjs dosya yükleme işleminin en iyi yolu nedir?Multipart/form veri yüklemesi - Nodejs - expressjs

+2

Alternatifler, Connect'in belgelerinde listelenmiştir: https://github.com/senchalabs/connect#middleware –

+0

@JonathanLonowski Evet, ancak bu kütüphaneler, hangisini tercih edeceğiniz kadar eski değiller mi? – nilveryboring

+0

Teknik olarak bunlardan çoğu eskisinden geliyordu. connect-multiparty, ihtiyacınız olan az çoktur. –

cevap

5

Sadece çok yönlü bir similar question yanıtladı. Çok partili öneririm: node-multiparty denediniz mi? İşte README örnek kullanımı:

var multiparty = require('multiparty') 
    , http = require('http') 
    , util = require('util') 

http.createServer(function(req, res) { 
    if (req.url === '/upload' && req.method === 'POST') { 
    // parse a file upload 
    var form = new multiparty.Form(); 

    form.parse(req, function(err, fields, files) { 
     res.writeHead(200, {'content-type': 'text/plain'}); 
     res.write('received upload:\n\n'); 
     res.end(util.inspect({fields: fields, files: files})); 
    }); 

    return; 
    } 

    // show a file upload form 
    res.writeHead(200, {'content-type': 'text/html'}); 
    res.end(
    '<form action="/upload" enctype="multipart/form-data" method="post">'+ 
    '<input type="text" name="title"><br>'+ 
    '<input type="file" name="upload" multiple="multiple"><br>'+ 
    '<input type="submit" value="Upload">'+ 
    '</form>' 
); 
}).listen(8080); 

yazar (Andrew Kelley) bodyParser kaçınarak recommends, bu yüzden bunu önlemek için haklısın, ama çok partili benim için benzer bir sorunu çözmek gibi görünüyor.

+1

, bunu bir katman yazılımı olarak kullanmanın bir yolu var mı? Ben her yerde bu dahil etmek istemiyorum – nilveryboring

+0

@nilveryboring Ne demek istediğimi emin değilim ... Kesinlikle tekrar kullanılabilecek bir yere koyabilirsiniz ... Neden her yerde ihtiyacın olduğunu bilmiyorum .... – kentcdodds

+0

Tamam .. Bunu da denedik. Yanıt üstbilgisini ayarlamadan dosyayı nasıl alabilirim ?? Başka bir işlem yapmak istiyorum o zaman tamamsa .. yanıt üstbilgisini ayarlayın veya hatayı geri ayarlayın. res.end (util.inspect ({fields: alanlar, dosyalar: dosyalar})); .. Sadece dosya gönderilen ama başlık yalnız bırakılmasını istiyorum ??? – philipfwilson