Example #1
0
router.post('/photo', function(req, res) {
    console.log('photo');
    var form = new multiparty.Form();
    var picture = new Picture();
    var type = req.query.parenttype;
    
    form.parse(req, function(err, fields, files) {
        
        for (var i = 0, len = files.files.length; i < len; i++) {
        
            var path = files.files[i].path;
            var n = path.lastIndexOf("/") + 1;

            var tempName = path.substring(n);
            var originalName = files.files[i].originalFilename;
            var filePath = '/var/www/html/nodeJS/weC/uploads/' + tempName;

            picture.filename = originalName;
            picture.filelocation = filePath;
            picture.parentid = req.query.parentid;
            picture.parenttype = req.query.parenttype;
            picture.save(function () {
              req.pictureid = picture._id;
              console.log(picture._id);
                if(type == 'event'){
                      Event.setPic( req , function(err, event) {
                          res.send(event);
                      });
                }else if(type == 'biz'){
                      Biz.setPic( req , function(err, biz) {
                              res.send(biz);
                      });
                }else if(type == 'tribe'){
                      Tribe.setPic( req , function(err, tribe) {
                              res.send(tribe);
                      });
                }else if(type == 'profile'){
                      User.setPic( req , function(err, user) {
                              res.send(user);
                      });
                }

            });            

	       console.log(path);
            var tfile = fs.readFileSync(path);
            fs.writeFile(filePath,tfile);
          
        }
        
    });
    
});
Example #2
0
exports.create = (req, res)=>{
  var form = new multiparty.Form();
  form.parse(req, (err, field, file)=>{
    var album = {};
    album.name = field.name[0];
    album.photo = file.photo[0].originalFilename;
    mkdirp(`${__dirname}/../static/img/${album.name}`, function(err) {
      fs.renameSync(file.photo[0].path,`${__dirname}/../static/img/${album.name}/${album.photo}`);
    });
    albums.save(album, ()=>res.redirect('/albums'));
  });
};
Example #3
0
brains.use(function(req, res, next) {
  if (req.method === 'POST' && req.headers['content-type'].split(';')[0] === 'multipart/form-data') {

    var form = new Multiparty.Form();
    form.parse(req, function(error, fields, files) {
      req.files = files;
      next(error);
    });

  } else
    next();
});
Example #4
0
    this.saveImage = function (req, res, next) {
        form = new multiparty.Form();
        id = req.params.id;
        uploadFile = {
            path: '',
            size: '',
            type: ''
        };

        maxSize = 2 * 1024 * 1024;
        supportMimeTypes = ['image/jpg', 'image/jpeg', 'image/png'];
        errors = [];

        form.on('error', function (err) {
            if (err) {
                next()
            }

            // ToDO: удалять файлы, название которых - _id, игнорировать разрешение !!!
            if (fs.existsSync(uploadFile.path)) {
                fs.unlinkSync(uploadFile.path);
            }

        });
        form.on('part', function (part) {

            uploadFile.size = part.byteCount;
            uploadFile.type = part.headers['content-type'];
            extention = (uploadFile.type).substring((uploadFile.type).indexOf('/') + 1).toString();
            uploadFile.path = './public/images/avatars/' + id + '.' + extention;
            if (uploadFile.size > maxSize) {
                errors.push('File size is ' + uploadFile.size + '. Limit is' + (maxSize / 1024 / 1024) + 'MB.');
            }

            if (supportMimeTypes.indexOf(uploadFile.type) == -1) {
                errors.push('Unsupported mimetype ' + uploadFile.type);
            }
            if (errors.length != 0) {

                return next(new HttpError(400, errors));
            }

            out = fs.createWriteStream(uploadFile.path);
            part.pipe(out);
        });
        form.on('close', function () {
            console.log('Upload completed!');
            console.log((uploadFile.path).substr([9]));
            req.body.avatar = (uploadFile.path).substr(9);
            next();
        });
        form.parse(req);
    };
Example #5
0
  self.put = function(req, res, callback) {

    var table = rootPath + "/db/" + sanitizeUrl("table", req);
    var id = sanitizeUrl("id", req);
    var data = sanitizeUrl("data", req);
    var form = new multiparty.Form();

    if (table.match(/^(.*?(\_User\b)[^$]*)$/)) {
      protectedCallback(res, callback, { error: "Calls to _User are not allowed" });
    } else {

      var thisDb = getDB(table);

      // handle the FormData
      form.parse(req, function(err, allFields, files) {

        var fields = sanityzeAndRemoveEmpty(allFields);
        fields.updatedAt = new Moment().format('x').toString();

        thisDb.loadDatabase(function (err) {
          if (err) {
            protectedCallback(res, callback, { error: err });
          } else {
            // Set an existing field's value
            thisDb.update({ _id: id }, { $set: fields }, function (err, numReplaced) {
              if (err) {
                protectedCallback(res, callback, { error: err });
              } else {

                var first = null;
                var firstKey = null;
                for (var firstKey in files) {
                  first = files[firstKey];
                  if(typeof(first) !== 'function') {
                      break;
                  }
                }

                if(files && files[firstKey]) {
                  // If there's a file, upload it
                  saveFiles(table, id, files, callback) // TODO how to keep the files?
                } else {
                  // no uploading neccessary
                  protectedCallback(res, callback, { _id: id })
                }
              }
            });
          }
        });
      });
    }
  }
Example #6
0
router.post('/upload', function(req, res, next) {

  var form = new multiparty.Form( { maxFilesSize: config.maxSongFileSize } );
  form.parse(req, function(err, fields, files){
    if(err){
      return next(err);
    }

    //input validation
    if(fields && fields.songId[0] !== 'undefined' && files.file[0] && files.file[0].headers["content-type"] === 'image/jpeg' && req.user){

      var args = {
        songId: fields.songId[0],
        userId: req.user._id,
        filePath: files.file[0].path
      };

      //add image
      controller.add(args, function(err){
        //first, delete file here since it was created here by form.parse
        fs.unlink(files.file[0].path, function(err){
          if(err){
            erroController.reportError(err);
          }
        });

        //then return err if any
        if (err) {
          return next(err);
        }

        //return output if all is good
        var output = { data: {} };
        render(res, output);
      });
    }
    else{
      //also delete file if input was invalid
      fs.unlink(files.file[0].path, function(err){
        if(err){
          erroController.reportError(err);
        }
      });
      //report file type error
      if (files.file[0] && files.file[0].headers && files.file[0].headers["content-type"]) {
        erroController.reportError({ 'status': 'Upload Image - Invalid Input', 'message': 'File submitted was of content-type: ' + files.file[0].headers["content-type"] });
      }
      //return err
      return next(new Error('Invalid Input!'));
    }
  });
});
Example #7
0
 app.post('/apis/upload',function(req,res,next){
 	var form = new multiparty.Form({uploadDir:'./public/ups/'});
 	form.parse(req,function(err,fields,files){
 		var filesTmp = JSON.stringify(files,null,2);
 		if(err){
 			console.log('Form Parse error:'+err);
 		}else{
 			// console.log(filesTmp);
 			var inpageUrl = files.file[0].path.split('public')[1];
 			res.send({url:inpageUrl});
 		}
 	});
 });
module.exports.processForm = function( req, res, next ) {
  var form = new multiparty.Form();

  form.parse( req, function( err, fields, files ) {
    if ( err ) {
      return next( utils.error( 500, err ) );
    }

    req.body = fields;
    req.files = files;
    next();
  });
};
Example #9
0
router.post('/import', isAuthenticated, (req, res) => {
  const form = new multiparty.Form();
  form.parse(req);
  form.on('file', function (name, file) {
    race.import(file.path);
  });
  form.on('close', function () {
    res.redirect('/admin/after');
  });
  form.on('error', function (err) {
    console.log(err);
  });
});
Example #10
0
 app.use(function (req, res, next) {
   req.uploadDir = app.get('uploadDir');
   req.uploadRelative = app.get('uploadRelative');
   if(req.method === 'POST' && req.headers['content-type'].indexOf("multipart/form-data") !== -1){
     var form = new multiparty.Form();
     form.parse(req, function(err, fields, files){
       req.files = files;
       next();
     });
   } else {
     next();
   }
 });
Example #11
0
router.post("/graphs/", function(req, res, next) {
 // fs.writeFile(path.join(config.active_dir, req.body.filename), req.body.contents, function(err) {
 //     if(err) {
 //      res.status(500).send({error: err});
 //     }
 //     res.send({success: true});
 // });

 // Configure multi-part form uploads.
    var options = {
        autoFiles: true,
        uploadDir: config.active_dir
    };
    var form = new multiparty.Form(options);

    // Handle multi-part form data.
    form.parse(req, function(err, fields, files) {
        // If there was some kind of error parsing the multi-part form,
        // forward it to our error handler and bail out.
        if (err) {
            next(err);
            return;
        }

        // Make sure we actually have a filename field in whatever form is
        // submitting the request.
        if (!fields.hasOwnProperty("filename")) {
            throw "No filename property.";
        }

        // We must have at least something file-like for the gcl_content field.
        if (!files.hasOwnProperty("contents")) {
            throw "No contents";
        }

        // At this point, Multiparty will have uploaded the file to the graphs
        // directory, but it won't be the name that we want. We'll go ahead and
        // move the file to the proper location.
        var temp = files.contents[0].path;
        var dest = path.join(config.active_dir, fields.filename[0]);
        fs.rename(temp, dest, function(err) {
            if (err) {
                next(err);
                res.status(500).end();
                return;
            }
            res.status(200).end();
        });
    });

});
Example #12
0
Pluploader.prototype.handleRequest = function plupload(req, res) {

  var form = new multiparty.Form(this.options),
    self = this;

  form.parse(req, function(err, fields, files) {

    if (!fields.chunk) {
      fields.chunk = [0];
      fields.chunks = [1];
    }

    var name = fields.name[0],
      chunks = fields.chunks[0];

    var fileIdentifier = name + chunks[0];

    if (!self.pendingUploads[fileIdentifier]) {
      self.pendingUploads[fileIdentifier] = {
        name: name,
        files: [],
        updated: +new Date(),
        chunks: chunks
      };
    }

    // TODO find a way to prevent upload from going to FS
    fs.readFileAsync(files.file[0].path)
    .then(function(fileData) {

	  self.pendingUploads[fileIdentifier].tempPath = files.file[0].path;
      self.pendingUploads[fileIdentifier].files.push(fileData);

      self.uploadLimitReached(fileIdentifier).then(function(limitReached) {

        if (limitReached) {

        	self.emit('error', {
        		'message': 'File size exceeds upload limit of ' + self.options.uploadLimit + 'M'
        	});
          
        } else {
          self.finalizePendingUploads(req);
        }
      });
    })
    .error(function(error) {
      self.emit('error', error);
    });
  });
};
Example #13
0
 this.uploadSchedule = function(req,res){
     var form = new multiparty.Form({uploadDir: '../upload/'});
     //上传完成后处理
     form.parse(req, function(err, fields, files) {
         var file = JSON.parse(JSON.stringify(files,null,2));
         var data = JSON.parse(JSON.stringify(fields,null,2));
     if(err){
         console.log('parse error: ' + err);
     } else {
         if(file.file){
             var uploadedPath = file.file[0].path+'';
             var dstPath = '../upload/' + file.file[0].originalFilename;
             //重命名为真实文件名
             fs.rename(uploadedPath, dstPath, function(err) {
                 if(err){
                     console.log('rename error: ' + err);
                 }else{
                     var orderData = read.readFile('./orderSchedule.js');
                     var time = new Date().getTime();
                     var newData = JSON.stringify({'uuid':data.orderid[0],'schedule':data.schedule[0],'scheduleImage':dstPath,'uploadTime':time});
                     if(orderData!='')
                         orderData = orderData+','+newData;
                     else
                         orderData = newData;
                     if(this.writeFile('./orderSchedule.js',orderData))
                     {
                         res.writeHead(200, {'Content-Type': 'application/json'});
                         res.write(JSON.stringify({S0023:"ORDER_SUCCESS"}));
                         res.end();  
                     }
                 }
             });
         }
         else{
             var orderData = read.readFile('./orderSchedule.js');
             var time = new Date().getTime();
             var newData = JSON.stringify({'uuid':data.orderid[0],'schedule':data.schedule[0],'uploadTime':time});
             if(orderData!='')
                 orderData = orderData+','+newData;
             else
                 orderData = newData;
             if(this.writeFile('./orderSchedule.js',orderData))
             {
                 res.writeHead(200, {'Content-Type': 'application/json'});
                 res.write(JSON.stringify({S0023:"ORDER_SUCCESS"}));
                 res.end();  
             }
         }
     }
 });
 }
Example #14
0
router.post('/love-record/upload', function (req, res, next) {
    //生成multiparty对象,并配置上传目标路径
    var form = new multiparty.Form({
        uploadDir: './public/images/love-record/'
    });
    //上传完成后处理
    form.parse(req, function (err, fields, files) {
        var filesTmp = JSON.stringify(files, null, 2);
        if (err) {
            console.log('parse error: ' + err);
        } else {
            var inputFile = files.inputFile[0];
            var uploadedPath = inputFile.path;

            //重名为当前最大的一个数字
            var files = rd.readSync('./public/images/love-record');
            var max = 0;
            files.map(function (str) {
                var file = path.basename(str);
                //大于10位位随机文件
                if (file.length < 10) {
                    var s = file.split(".");
                    var rank = parseInt(s[0]);
                    if (!isNaN(rank)) {
                        max = Math.max(rank, max);
                    }
                }
            });
            var dstPath = './public/images/love-record/' + (max + 1) + '.' + inputFile.originalFilename.split('.')[1];
            fs.rename(uploadedPath, dstPath, function (err) {
                if (err) {
                    console.log('rename error: ' + err);
                } else {
                    console.log('rename ok');
                }
            });
        }

        res.writeHead(200, {
            'content-type': 'text/plain;charset=utf-8'
        });
        res.write('received upload:\n\n');

        //写入says信息
        file.append(path.resolve(__dirname, '../public/config/says.txt'), fields.say[0] + '\n');
        res.end(util.inspect({
            fields: fields,
            files: filesTmp
        }));
    });
});
Example #15
0
    app.post( "/tweet", function(req, res ){
        
        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}));
            
            if( fields.image ){
                                
                if( req.session.oauthAccessToken ){
                    
                    var collection = followersDatabase.collection( 'tokens' );

                    collection.findOne( { 'oauth_access_token': req.session.oauthAccessToken }, function( err, item ) {     
                        
                        console.log( 'found' );

                        var config = {
                            consumer_key: process.env.TWITTER_CONSUMER_KEY,
                            consumer_secret: process.env.TWITTER_CONSUMER_SECRET,
                            token_secret: item.oauth_access_token_secret,
                            token: item.oauth_access_token
                        }
            
                        var image = decodeURIComponent( fields.image[0] );
                        
                        var matches = image.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/)
                        
                        var imageData = new Buffer(matches[2], 'base64');
                        
                        var m = new media(config);

                        m.post( fields.message[0], imageData, function(err, response) {
                          if (err) {
                              
                            console.log( 'ERROR' );
                              
                            console.log(err);
                          }else{
                            console.log( 'SUCCESS' ); 
                          }
                            
                          console.log(response);
                        });
                    });
                }
            }
        });
    } );
Example #16
0
app.post('/api/1/credential/file', function (req, res, next) {
    // console.log(req.body.split('\n'));
    //
    // if (req.body.credential) {
    // }

    var form = new multiparty.Form();
    form.parse(req, function (err, fields, files) {
        var credential = files.credential[0];
        if (credential.size == 0) {
            res.send('no file');
            return;
        }
        fs.readFile(credential.path, function (err, data) {
            if (err) {
                return res.send('read failed');
            }
            new AV.File(credential.originalFilename, data).save()
                .then(function (theFile) {
                    var lines = new Buffer(data).toString('utf8').split('\n');
                    lines.forEach(function (l) {
                        var parts = l.split(' ');
                        var credential = new Credential();
                        credential.set('protocol', parts[0]);
                        credential.set('host', parts[2]);
                        credential.set('username', parts[5]);
                        credential.set('password', parts[8]);

                        var query = new AV.Query(Credential);
                        query.equalTo('protocol', parts[0]);
                        query.equalTo('host', parts[2]);
                        query.equalTo('username', parts[5]);
                        query.equalTo('password', parts[8]);
                        query.first().then(function (c) {
                            if (!c) {
                                return credential.save();
                            }
                        }, function (err) {
                            return credential.save();
                        }).then(function (c) {
                            console.log(c.id);
                        }, function (err) {
                            console.log(err);
                        })
                    })
                    res.send(lines);
                }).catch(next);
        });
    });

});
Example #17
0
router.post('/submissions', jwtCheck, function (req, res) {
    console.log(req.get('content-type'));
    var form = new multiparty.Form();
    form.parse(req);

    minUtils.saveSubmission(req.user, form, function (err, obs) {
        if (err) {
            console.log('Error saving MIN submission : %s', JSON.stringify(err));
            res.send(500, {error: 'There was an error while saving your submission.'})
        } else {
            res.json(201, obs);
        }
    });
});
Example #18
0
exports.create = function(req, res){
//  console.log('server-controller-create >>>>>>>> req.user._id: ', req.user._id);
//  console.log('server-controller-create >>>>>>>> req.body: ', req.body);
  var form = new mp.Form();
  form.parse(req, function(err, fields, files){
    console.log('server-controller-create >>>>>>>> fields: ', fields);
    console.log('server-controller-create >>>>>>>> files: ', files);
    var projectInfo = JSON.parse(fields.project[0]);
    console.log('server-controller-create >>>>>>>> projectInfo: ', projectInfo);
    Project.create(req.user._id, projectInfo, files, function(err, success, project){
      res.send({project:project});
    });
  });
};
Example #19
0
router.post('/submissions', jwtCheck, function (req, res) {
    console.log(req.get('content-type'));
    var form = new multiparty.Form();
    form.parse(req);

    hzrUtils.saveHZR(req.user, form, function (err, hzr) {
        if (err) {
            logger.log('info','Error saving hot zone report: %s', JSON.stringify(err));
            res.send(500, {error: 'There was an error while saving your submission.'})
        } else {
            res.json(201, hzr);
        }
    });
});
Example #20
0
exports.create = (req, res)=>{
  var form = new multiparty.Form();
  var userId = req.session.userId;

  form.parse(req, (err, fields, files)=>{
    var project = {};
    project.title = fields.title[0].trim();
    project.description = fields.description[0].trim();
    project.tags = fields.tags[0].split(',').map(t=>t.toLowerCase()).map(x=>x.trim());
    project.gitURL = fields.gitURL[0].trim();
    project.appURL = fields.appURL[0].trim();
    project.date = new Date(fields.date[0]);
    project.userId = userId;
    console.log(fields);

    project.photos = [];
    console.log(files);
    var photoOrigPaths = [];
    files.photos.forEach(p=>{
      project.photos.push(`/img/${userId}/${project.title}/${p.originalFilename}`);
      photoOrigPaths.push(p.path);

      console.log(fields);
      console.log(files);
      console.log(p);

    });

     if(project.photos.length > 0){
      if(!fs.existsSync(`${__dirname}/../static/img/${userId}`)){
        fs.mkdirSync(`${__dirname}/../static/img/${userId}`);
        }
        if(!fs.existsSync(`${__dirname}/../static/img/${userId}/${project.title}`)){
        fs.mkdirSync(`${__dirname}/../static/img/${userId}/${project.title}`);
        }
        project.photos.forEach((path, i)=>{
        fs.renameSync(photoOrigPaths[i], `${__dirname}/../static/${path}`);
      });
    }



    var projectObject = new Project(project);
    console.log('----------OBJECT-----------------');
    console.log(projectObject);

    projects.save(project, ()=>res.redirect(`/project/show/${project._id}`));

  });
};
Example #21
0
exports.create = (req, res)=>{
  var form = new multiparty.Form();

  form.parse(req, (err, field, file)=>{
    var album = {};
    album.name = field.name[0];
    album.photo = [];
    file.photo.forEach(p=>{
      fs.renameSync(p.path, `${__dirname}/../static/img/${p.originalFilename}` );
      album.photo.push(p.originalFilename);
    });
    albums.save(album, ()=>res.redirect('/albums'));
  });
};
Example #22
0
router.post('/', function(req, res, next) {

	var form = new multiparty.Form();
	
	// get field name & value
	form.on('field',function(name,value){
		console.log('normal field / name = '+name+' , value = '+value);
	});
	
	// file upload handling
	form.on('part',function(part){
		var filename;
		var size;
		if (part.filename) {
			filename = part.filename;
			size = part.byteCount;
		}else{
			part.resume();
		
		}	

		console.log("Write Streaming file :"+filename);
		var writeStream = fs.createWriteStream('/tmp/'+filename);
		part.pipe(writeStream);

		part.on('data',function(chunk){
			console.log(filename+' read '+chunk.length + 'bytes');
		});
		
		part.on('end',function(){
			console.log(filename+' Part read complete');
			writeStream.end();
		});
	});

	// all uploads are completed
	form.on('close',function(){
		res.status(200).send('Upload complete');
	});
	
	// track progress
	form.on('progress',function(byteRead,byteExpected){
		console.log(' Reading total  '+byteRead+'/'+byteExpected);
	});
	
	form.parse(req);


});
Example #23
0
  app.post('/upload', hasPermAdd, function(request, response, next) {
    var form = new MultipartForm({
      maxFields: 100000, // let them eat cake
      autoFields: true,
    });
    var allDbFiles = [];
    var pend = new Pend();
    var autoQueue = false;
    var size;

    form.on('error', next);
    form.on('part', function(part) {
      pend.go(function(cb) {
        log.debug("import part", part.filename);
        player.importStream(part, part.filename, size, function(err, dbFiles) {
          if (err) {
            log.error("Unable to import stream:", err.stack);
          } else if (!dbFiles) {
            log.warn("Unable to import stream, unrecognized format");
          } else {
            allDbFiles = allDbFiles.concat(dbFiles);
          }
          log.debug("done importing part", part.filename);
          cb();
        });
      });
    });
    form.on('field', function(name, value) {
      if (name === 'autoQueue') {
        autoQueue = true;
      } else if (name === 'size') {
        size = parseInt(value, 10);
      }
    });
    form.on('close', function() {
      pend.wait(function() {
        if (allDbFiles.length >= 1) {
          var user = request.client && request.client.user;
          playerServer.addEvent(user, 'import', null, allDbFiles[0].key, allDbFiles.length);
          if (autoQueue) {
            player.sortAndQueueTracks(allDbFiles);
            playerServer.addEvent(user, 'queue', null, allDbFiles[0].key, allDbFiles.length);
          }
        }
        response.json({});
      });
    });
    form.parse(request);
  });
Example #24
0
app.post('/upload', function(req, res) {
    var form = new multiparty.Form();
    form.parse(req, function(err, fields, files) {
        if (err) { // TODO: take better care of error and notify user
            console.log('Error occurred : \n' + err);
            res.json({});
        }

        //console.log('fields : ' + JSON.stringify(fields));
        //console.log('files : ' + JSON.stringify(files));

        // create the directory if it doesn't exist yet
        var dirName = _getDirName(fields['page-hash']);
        if (!fs.existsSync(dirName)) {
            var dateDir = dirName.split('/')[0] + '/' + dirName.split('/')[1];
            if (!fs.existsSync(dateDir))
                fs.mkdirSync(dateDir);
            fs.mkdirSync(dirName);
        }

        // copy the files to the new directory
        var uploadedFiles = files.file;
        var copyCount = 0;
        for (var i=0; i<uploadedFiles.length; i++) {
            var tempFilePath = uploadedFiles[i].path;
            var originalFilename = uploadedFiles[i].originalFilename;

            fs.createReadStream(tempFilePath)
                .pipe(fs.createWriteStream(dirName + '/' + originalFilename)
                    .on('close', function(err) {
                        if (err)
                            console.log('error : ' + err);
                        //console.log('file copied');

                        fs.unlink(tempFilePath, function(err) {
                            if (err) {
                                // Fail gracefully, and just shut up!
                                // console.log('error deleting file : ' + err);
                            }

                            copyCount++;
                            if (copyCount == uploadedFiles.length)
                                res.json({});
                        });
                    }));
        }

    });
});
Example #25
0
router.post('/emails/webhook', function (req, res) {
  console.log('Receiving webhook.');

  /* Parse the multipart form. The attachments are parsed into fields and can
   * be huge, so set the maxFieldsSize accordingly. */
  var form = new multiparty.Form({
    maxFieldsSize: 70000000
  });

  form.on('progress', function () {
    var start = Date.now();
    var lastDisplayedPercentage = -1;
    return function (bytesReceived, bytesExpected) {
      var elapsed = Date.now() - start;
      var percentage = Math.floor(bytesReceived / bytesExpected * 100);
      if (percentage % 20 === 0 && percentage !== lastDisplayedPercentage) {
        lastDisplayedPercentage = percentage;
        console.log('Form upload progress ' +
        percentage + '% of ' + bytesExpected / 1000000 + 'Mb. ' + elapsed + 'ms');
      }
    };
  }());

  form.parse(req, function (err, fields) {
    var email = JSON.parse(fields.mailinMsg);
        
    MongoClient.connect(url + '/emails', function(err, db) {
      assert.equal(null, err);
      db.collection('emails').insertOne(email);
      db.close();
    });
    
    MongoClient.connect(url + '/articles', function(err, db) {
      assert.equal(null, err);
      if(_.find(email.envelopeTo, {address: '*****@*****.**'})) {
        var title = email.subject;
        var message = email.text;
        
        db.collection('dans')
          .insertOne({
            title: title,
            body: message,
            created_date: Date.now()
          });
      }
      db.close();
    });
  });
});
Example #26
0
 router.post('/', function(req, res, next){
	// create a form to begin parsing
	var form = new multiparty.Form();
	var upload = {};

	form.autoFiles = true;
	form.uploadDir = './public/images/students';
	form.on('error', next);
	form.on('close', function(){
		res.send(format('\nuploaded!'));
	});

	// parse the form
	form.parse(req, function(err, fields, files) {
		var re = /public\/(.*)/;
		var match = re.exec(files.image[0].path);
		var doc = {
			firstName: fields.firstName[0],
			lastName: fields.lastName[0],
			suid: parseInt(fields.suid),
			image: match[1],
			active: false
		};

		db.insert(doc, function(err, newDoc) {
			console.log("Inserted " + doc.firstName + " " + doc.lastName + "!");
		});

		//compress the file at some random point in the next hour to distribute load
		//actually an issue when uploading a ton of photos at the same time
		//like the 'advizor board' command does
		var timeout = Math.floor((Math.random() * 300) + 300) * 1000;
		setTimeout(function() {
			var img = files.image[0].path;
			var cmd = "convert " + img + " -resize 255x340 " + img;
			console.log(cmd);
			exec(cmd, function(err, stdout, stderr) {
				if (err) {
					console.log(stderr);
				} else {
					console.log("resized " + img);
				}
			});
		}, timeout);


	});

});
Example #27
0
  self.post = function (req, resp, callback) {

    var table = rootPath + "/db/" + sanitizeUrl("table", req);

    if (table.match(/^(.*?(\_User\b)[^$]*)$/)) {
      protectedCallback(resp, callback, { error: "Calls to _User are not allowed" });
    } else {

      var form = new multiparty.Form();

      var thisDb = getDB(table);

      // handle the FormData
      form.parse(req, function (err, allFields, files) {

        var fields = sanityzeAndRemoveEmpty(allFields);
        fields.createdAt = new Moment().format('x').toString();

        thisDb.loadDatabase(function (err) {
          if (err) {
            protectedCallback(resp, callback, { error: err });
          } else {

            thisDb.insert(fields, function (err, newDoc) {
              if (err) {
                protectedCallback(resp, callback, { error: err });
              } else {
                var first = null;
                var firstKey = null;
                for (var firstKey in files) {
                  first = files[firstKey];
                  if(typeof(first) !== 'function') {
                      break;
                  }
                }
                if (files && files[firstKey]) {
                  // If there's a file, upload it
                  saveFiles(table, newDoc._id, files, callback);
                } else {
                  // no uploading neccessary
                  protectedCallback(resp, callback, { _id: newDoc._id });
                }
              }
            });
          }
        });
      });
    }
  }
Example #28
0
/** */
function do_multiparty_form_parse_(req) {
	var defer = $Q.defer();

	function do_multiparty_form_parse_2(err, fields, files) {
		if(err) {
			defer.reject(err);
			return;
		}
		defer.resolve({"fields": fields, "files": files});
	}

	var form = new multiparty.Form();
	form.parse(req, do_multiparty_form_parse_2);
	return defer.promise;
}
		function (request, response) {
			var form = new multiparty.Form();

			var auth = request.headers['authorization'];
			var basic = new Buffer(apiKey + ':' + apiSecret).toString('base64');

			t.equals(auth, 'Basic ' + basic);

			form.parse(request, function (err, fields, files) {
				t.deepEquals(fields, expectedObject);
			});

			response.writeHead(200);
			response.end();
		},
Example #30
0
router.post('/upload', function(req, res, next) {
    var form = new multiparty.Form();
    
    form.on('part', function(part) {
        if(!part.filename) {
            console.log('No part.filename');
            return;
        }
        
        var size = part.byteCount;
        var name = part.filename;
        var mimeType = part.headers['content-type'];
        
        azureMedia.rest.asset.create({Name: name}, function(err, asset) {
            if (err) {
                console.log(err);
            } else {
                console.log('Created asset');
                asset.MimeType = mimeType;
                asset.Size = size;
                asset.Part = part;
                asset.AssetId = asset.Id;
                buildAssetFile(asset);
            }
        });
        
        part.on('error', function(err) {
            var code = err.statusCode || 500;
            res.status(code).send('Error in PART!');
        });
        
    });
    
    form.on('error', function(err) {
        console.log('form.on ERROR!');
        var code = err.statusCode || 500;
        res.status(code).send('form.on ERROR!');
    });
    
    form.on('close', function() {
        res.status(200).send('Successful upload!');
    });
    
    form.parse(req);
    
    // res.send('Done with something');

});