2012-11-01 17 views
8

मैं मल्टीपार्ट फॉर्म डेटा का उपयोग कर क्लाइंट साइड से छवि फ़ाइल अपलोड कर रहा हूं। मैं node.js. का उपयोग कर सर्वर पक्ष में फ़ाइल के रूप में इसे प्राप्त करना और लिखना चाहता हूं।node.js में मल्टीपार्ट/फॉर्म-डेटा को कैसे संभालें

<html> 
    <body> 
     <form action="url" method="post" enctype="multipart/form-data"> 
      <input type="text" name="imageName"> 
      <input type="file" name="sam"> 
     </form> 
    </body> 
</html> 

यह मेरा क्लाइंट साइड कोड है। सर्वर की तरफ इस फ़ाइल को कैसे संभालें।

उत्तर

2

यह लिंक नीचे दिए गए प्रश्न को दोहराया गया है।

// 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'); 

अपने प्रश्न तो हल नहीं है, तो कृपया this link:

Uploading images using Node.js, Express, and Mongoose

यहाँ उदाहरण है। फ़ाइल अपलोड करने के बारे में यह एक अच्छा लेख है।

-3

आप मल्टीपार्ट अनुरोध भेजने के लिए अनुरोध मॉड्यूल का उपयोग कर सकते हैं। यहां नमूना कोड है:

var jsonUpload = { }; 
var formData = { 
    'file': fs.createReadStream(fileName), 
    'jsonUpload': JSON.stringify(jsonUpload) 
}; 
var uploadOptions = { 
    "url": "https://upload/url", 
    "method": "POST", 
    "headers": { 
     "Authorization": "Bearer " + accessToken 
    }, 
    "formData": formData 
} 
var req = request(uploadOptions, function(err, resp, body) { 
    if (err) { 
     console.log('Error ', err); 
    } else { 
     console.log('upload successful', body) 
    } 
}); 
+0

वह * डेटा को संभालना चाहता है, इसे नहीं भेजना चाहता। –

संबंधित मुद्दे