2014-11-20 4 views
1

Когда я начинаю загружать файл с помощью своего приложения, он запасается после первого шага. пыльник код функции загрузкиИсключительный запас во время разбора

exports.upload = function(req, res){ 
    var form = formidable.IncomingForm(); 
    console.log('Upload'); 
    form.parse(req, function(err, fields, files){ 
     if(err){ 
      console.log(err);    
      res.send(err); 
      return; 
     } 
     console.log('Parsing'); 
     fs.readFile(files.image.path, function(err, data){ 
      if(err){ 
       res.send(err); 
      } 
      var imageName = files.image.name; 
      if(!imageName){ 
       console.log("Parsing issue - sending 500"); 
       res.writeHead(500, {'Content-type':'text/plain'}); 
       res.write('Parsing error'); 
       res.end(); 
       return; 
      } 
      var fullPath = photoDir + imageName; 
      var thumbPath = thumbDir + imageName; 
      fs.writeFile(fullPath, data, function(err){ 
       im.resize({ 
        srcPath: fullPath, 
        dstPath: thumbPath, 
        width: 100 
       },function(err, stdout, stderr){ 
        if(err){ 
         console.log(err); 
         res.send(err); 
         return; 
        } 
        var newPhoto = new Photo({ 
         'fullsize_name':imageName, 
         'thumbsize_name':imageName 
        }); 
        newPhoto.save(function(err){ 
         if(err){ 
          res.send(err); 
         } 
         res.json(newPhoto); 
         console.log(newPhoto); 
        }); 
       }); 
      }); 
     }); 
    }); 
} 

и конфигурации серверной части

var express = require('express'); 
var logger = require('morgan'); 
var body_parser = require('body-parser'); 
var mongoose = require('mongoose'); 
var passport = require('passport'); 
var multipart = require('connect-multiparty'); 
. 
. 
. 
var app = express(); 
var router = express.Router(); 
var multipartMiddleware = multipart(); 
. 
. 
. 
/** PHOTO OPERATIONS **/ 
router.route('/photos') 
    .post(authController.isAuthenticated, photoController.upload); 
. 
. 
. 
app.use(passport.initialize()); 
app.use(logger('dev')); 
app.use(multipartMiddleware); 
app.use(body_parser.json()); 
app.use(body_parser.urlencoded({ 
    extended: true 
})); 

app.use('/api', router); 

Есть ли у вас какие-либо идеи, почему это мешает, когда я звоню

form.parse (REQ, функция (err, поля, файлы) {

ответ

0

Вы пропустили { enctype = 'multipart/form-data'} в теге формы в вашем html-файле? Добавление может работать.

Смежные вопросы