SORU
1 Mart 2011, Salı


Resimler node.js İfade kullanarak yükleme ve Firavun faresi

Lütfen daha güncel bilgi için yeni cevaplar dikkate şeyler yılda çok şey değişti!

Birçok yeni node.js kütüphaneler hızlı bir şekilde işlemez hale ediliyor ve nispeten var olduğundan birkaç örnek resimler Node.js (v0.en yeni sürümlerini kullanarak yükleme hakkında birkaç şey sormak istiyorum zaten 4.1), (1.0.7) Express, Mongoose (1.1.0). Diğerlerini nasıl yaptın?

Buldum: https://github.com/felixge/node-formidable, ama bunu yaparken genel şeyler ve yollar node.js kullanmayı öğrenmek ve İfade etmek istediğim genel olarak resim yükleme yeni duyuyorum.

CEVAP
1 Mart 2011, Salı


İlk defa kendi soruma cevap vereyim. Doğrudan kaynağından bir örnek buldum. Zavallı girinti affet lütfen. Kopyalama ve yapıştırma düzgün girinti için nasıl emin değildim. Kodu direk GitHub multipart/form-data example Express geliyor.

// Expose modules in ./support for demo purposes
require.paths.unshift(__dirname   '/../../support');

/**
 * Module dependencies.
 */

var express = require('../../lib/express')
  , form = require('connect-form');

var app = express.createServer(
  // connect-form (http://github.com/visionmedia/connect-form)
  // middleware uses the formidable middleware to parse urlencoded
  // and multipart form data
  form({ keepExtensions: true })
);

app.get('/', function(req, res){
  res.send('<form method="post" enctype="multipart/form-data">'
      '<p>Image: <input type="file" name="image" /></p>'
      '<p><input type="submit" value="Upload" /></p>'
      '</form>');
});

app.post('/', function(req, res, next){

  // connect-form adds the req.form object
  // we can (optionally) define onComplete, passing
  // the exception (if any) fields parsed, and files parsed
  req.form.complete(function(err, fields, files){
    if (err) {
      next(err);
    } else {
      console.log('\nuploaded %s to %s'
        ,  files.image.filename
        , files.image.path);
      res.redirect('back');
    }
  });

  // We can add listeners for several form
  // events such as "progress"
  req.form.on('progress', function(bytesReceived, bytesExpected){
    var percent = (bytesReceived / bytesExpected * 100) | 0;
    process.stdout.write('Uploading: %'   percent   '\r');
  });
});

app.listen(3000);
console.log('Express app started on port 3000');

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • Chilla Frilla™

    Chilla Frill

    7 Aralık 2006
  • Vsauce

    Vsauce

    30 Temmuz 2007