使用Node.js上传多张图片 [英] Multiple image upload using Node.js

查看:99
本文介绍了使用Node.js上传多张图片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在研究Node.js,并尝试处理多个图像.我正在使用以下代码上传单个图像,然后将路径以字符串格式保存到数据库.

I am working on Node.js and trying to handle multiple image. I am using following code to upload a single image and then saving the path in string format to the database.

 var multiparty = require("multiparty");
 var form = new multiparty.Form();

 form.parse(req, function(err, fields, files) {
     var img = files.image[0];
     var fs = require('fs');

     fs.readFile(img.path, function(err, data) {
         var path = "/path/to/upload/" + img.originalFilename;

         fs.writeFile(path, data, function(error) {
             if (error) console.log(error);
         });
     });
 })    

现在如何处理多张图片.
任何帮助将不胜感激!

Now how to handle multiple image.
Any help will be appreciated!

推荐答案

var express = require('express'),
    app = express(),
    formidable = require('formidable'),
    util = require('util'),
    fs   = require('fs-extra'),
    bodyparser=require('body-parser'),
    qt   = require('quickthumb'),
    path    = require('path');


var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/db');

var Images = require('./model.js');



app.use(qt.static(__dirname + '/'));
app.use(bodyparser());
app.set('view engine','ejs');


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

      var form = new formidable.IncomingForm();
     form.parse(req, function(err, fields, files) {
          });

     form.on('field',function(name,value){

      });



  form.on('end', function(fields, files) {

        for(var x in this.openedFiles)
        {
                //Images is my model
                var img = new Images();

                var temp_path = this.openedFiles[x].path;
               /* The file name of the uploaded file */
                var file_name = this.openedFiles[x].name;
                //console.log('file '+file_name);
                img.size = this.openedFiles[x].size;
                img.type = this.openedFiles[x].type;

                /* Location where we want to copy the uploaded file */
                var new_location = 'uploads/';

               console.log(img.nam=new_location+file_name);
               img.save(function(err,imgobj) {
                  if (err)
                   throw err;
               });    
                   //to copy the file into a folder         
                fs.copy(temp_path, new_location + file_name, function(err) {  
                  if (err) {
                    console.log(err);
                  }
               });//fscopy
          }//for loop

    });//form end
res.send('Done!!');

});//post
app.listen(3000);
console.log('started server');

这篇关于使用Node.js上传多张图片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆