uploadVideo: function(req, res){
      var fileName = '';
      var size = '';
      var tempPath;
      var extension;
      var videoName;
      var destPath = '';
      var inputStream;
      var outputStream;
      var form = new multiparty.Form();

      form.on('error', function(err){
        console.log('Error parsing form: ' + err.stack);
      });
      form.on('part', function(part){
        if(!part.filename){
          return;
        }
        size = part.byteCount;
        fileName = part.filename;
      });
      form.on('file', function(name, file){
        cloudinary.uploader.upload(file.path, function(response){
          return res.json({ response: response });
        }, { resource_type: "video" });
      });
      form.on('close', function(){
        console.log('Uploaded!!');
      });
      form.parse(req);
    }
Example #2
0
  function uploadMiddleware(req, res, next) {
    if (/\/API\/formFileUpload$/.test(req.url)) {
      var form = new multiparty.Form();
      var filename;

      form.on('error', function (error) {
        console.log('Error parsing form', error.stack);
        res.writeHead(500, {'content-type': 'text/plain'});
        res.end(JSON.stringify(error));
      });

      form.on('part', function (part) {
        if (part.filename) {
          filename = part.filename;
        }
        part.resume();
      });

      form.on('close', function () {
        res.writeHead(200, {'content-type': 'text/plain'});
        res.write(JSON.stringify({
          filename: filename,
          tempPath: '1234.file'
        }));
        res.end();
      });

      form.parse(req);
    } else {
      next();
    }
  }
Example #3
0
function upload_file(req, res, next, url, success, error) {
  // TODO which folder used
  // TODO remove file once request finished
  // TODO check extension of file
  // TODO check file size exceeded expected?
  var form = new multiparty.Form();
  /*
  form.on('field', function(name, value) {

  });
  */
  form.on('error', function(){
    res.end(JSON.stringify({success: false, error: {message: '上传文件失败'}}));
  });
  form.on('file', function(name, file) {
    do_upload_file(req, url, file.path, function(err, data){
      if(err) {
        if (error) {
          error(err, data);
        } else {
          res.end(JSON.stringify({success: false, error: {message: '上传文件失败'}}));
        }
      } else {
        if (success) {
          success(err, data);
        } else {
          res.end(JSON.stringify(data));
        }
      }
    })
  });

  form.parse(req);
}
    uploadVideo: function(req, res){
        var fileName = '';
        var size = '';
        var form = new multiparty.Form();

        form.on('error', function(err){
            console.log('Error Parsing Form: ' + err.stack);
        });
        form.on('part', function(part){
            if(!part.fileName){
                return;
            }

            fileName = part.fileName;
            size = part.byteCount;
        });
        form.on('file', function(name, file){
            cloudinary.uploader.upload(file.path, function(response){
                return res.json({response: response});
            }, {resource_type: 'video', chunk_size: 10000000});
        });
        form.on('close', function(){
            console.log("uploaded!!");
        });
        form.parse(req);
    },
Example #5
0
        setTimeout(function() {
            if(!stream) {
                setTimeout(arguments.callee, 200);
            } else {
                var form = new multiparty.Form();
                form.on('part', function(part) {
                    if(part.filename !== 'null') {
                        outputFilename = replaceExtension(part.filename, 'mp3');
                        res.writeHead(200, {
                            'Content-Type': 'binary/octet-stream',
                            'Content-Disposition': 'attachment; filename="' + outputFilename + '"',
                            'Content-Transfer-Encoding': 'binary',
                            'Transfer-Encoding': 'chunked',
                        });
                        var ffmpeg = spawn(extractAudio[0], extractAudio.slice(1));
                        ffmpeg.stderr.pipe(process.stdout, { end: false });
                        part.pipe(ffmpeg.stdin);
                        ffmpeg.stdout.pipe(res);

                        part.on('error', function(err) { console.log(err); });
                        ffmpeg.stdout.on('error', function(err) { console.log(err); });
                    } else {
                        part.resume();
                    }
                });
                stream.on('error', function(err) { console.log(err); });
                form.on('error', function(err) { console.log(err); });
                form.parse(stream);
            }
        }, 50);
Example #6
0
	fs.exists(filename, function (exists) {
		if (!exists) {
			var form = new multiparty.Form();

			// If any error occurs, just call next to dispatch error
			form.on('error', next);

			// As soon as the form is read, redirect the user to list
			form.on('close', function () {
				// TODO: question 2.2
				// Rediriger l'utilisateur vers le listing du dossier
				// où a été envoyé le fichier.
			});

			// listen on field event for title
			form.on('field', function (name, val) {});

			// listen on part event for file
			form.on('part', function (part) {
				// TODO: question 2.1
				// Récupérez les données envoyées par l'utilisateur,
				// et stockez-les dans un fichier sur le disque du serveur.
			});

			 // parse the form
			form.parse(req);

		} else {
			res.render('list', {errors: [req.url + ' already exists']});
		}
	});
Example #7
0
exports.fileUpload = function (req, res, next){
  // create a form to begin parsing
  var multiparty = require('multiparty');
  var form = new multiparty.Form();
  var file;

  form.on('error', function (error){
      res.send(error);
  });
  form.on('close', function(){
      res.json(file);
  });

  // listen on part event for image file
  form.on('part', function(part){
      //if (!part.filename) return;
      //if (part.name !== 'file') return part.resume();
      file = {};
      file.filename = part.filename;
      file.size = 0;
      part.on('data', function(buf){
          file.size += buf.length;
      });
      var pathToUpload = path.join(__dirname, '/../../../uploads/');
      var out = fs.createWriteStream(pathToUpload+ part.filename);
      part.pipe(out);
  });

  // parse the form
  form.parse(req);
  //res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
};
Example #8
0
router.post('/', function (req, res) {
	var form = new multiparty.Form();
	var datas = [];
	var key = uuid.v4() + ".jpg";

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

		if (!part.filename) {
			part.resume();
		} else {
			part.on('data', function (data) {
				datas.push(data)
			});

			part.resume();
		}
	});

	form.on('file', function (name, file) {
	
	});

	form.on('close', function () {
		var buffer = Buffer.concat(datas);
		//console.log(buffer);
		
		uploadFile(buffer, key, uptoken(bucket));
		console.log('close');
		res.send({'key': key});
	});

	form.parse(req);

});
Example #9
0
    limit(req, res, function(err){
      if (err) return next(err);

      var form = new multiparty.Form
        , data = {}
        , files = {}
        , done;

      Object.keys(options).forEach(function(key){
        form[key] = options[key];
      });

      function ondata(name, val, data){
        if (Array.isArray(data[name])) {
          data[name].push(val);
        } else if (data[name]) {
          data[name] = [data[name], val];
        } else {
          data[name] = val;
        }
      }

      form.on('field', function(name, val){
        ondata(name, val, data);
      });

      if (!options.defer) {
        form.on('file', function(name, val){
          val.name = val.originalFilename;
          ondata(name, val, files);
        });
      }

      form.on('error', function(err){
        if (!options.defer) {
          err.status = 400;
          next(err);
        }
        done = true;
      });

      form.on('close', function(){
        if (done) return;
        try {
          req.body = qs.parse(data);
          req.files = qs.parse(files);
        } catch (err) {
          form.emit('error', err);
          return;
        }
        if (!options.defer) next();
      });

      form.parse(req);

      if (options.defer) {
        req.form = form;
        next();
      }
    });
Example #10
0
  return new Promise((resolve, reject) => {
    const form = new multiparty.Form();

    form.on('part', part => {
      if (part.filename) {
        const filenameLarge = `${uuid.v1()}.jpg`;
        const resizeLarge = im()
          .set('background', '#ffffff')
          .set('alpha', 'remove')
          .resize('2048x2048')
          .quality(90)
          .autoOrient()
          .outputFormat('jpg');

        part.on('error', utils.safeReject(reject));
        bucket
          .writeImage(
            part.pipe(resizeLarge),
            'images/',
            filenameLarge.replace(/-/gu, '')
          )
          .then(image => {
            resolve({
              imageUrl: image,
            });
          })
          .catch(reject);
      }
    });
    form.on('error', utils.safeReject(reject));
    form.parse(req);
  });
app.post("/upload" , function(req , res){
	//criando instância de multparty para tratar nosso arquivo na requisição
	var mult = new multiparty.Form();
	//Ao receber arquivo executa o "bind part"
	mult.on("part" , function(file){
		//verifica se existe o campo filename 
		if(!file.filename) return;
		//iniciando conexao com a API do Azure Storage
		var servico = iniciaServico();
		//Armazenando arquivo através da api (pasta  , nome , arquivo , tamanho , função callback )
		servico.createBlockBlobFromStream(container , file.filename , file , file.byteCount , function(err){
			if(err){
				res.end("Houve algum erro ao enviar o arquivo");
				return ;
			}else{
			res.redirect("/listar");
			res.end("Arquivo Enviado com sucesso");
			}
		});
	});

	mult.on("error" , function(err){
		console.log("Erro :" +err);
		res.end();
	});
	//método obrigatório para parsear os arquivos , lembrando , req : request  e res : response .
	mult.parse(req);
});
Example #12
0
 _filePost: function(){
   var deferred = getDefer();
   var self = this;
   var form = new multiparty.Form({
     maxFieldsSize: C('post_max_fields_size'),
     maxFields: C('post_max_fields'),
     maxFilesSize: C('post_max_file_size')
   });
   form.on('file', function(name, value){
     self.http.file[name] = value;
   });
   form.on('field', function(name, value){
     self.http.post[name] = value;
   });
   form.on('close', function(){
     deferred.resolve(self.http);
   });
   //有错误后直接拒绝当前请求
   form.on('error', function(){
     self.res.statusCode = 413;
     self.res.end();
   });
   form.parse(this.req);
   return deferred.promise;
 },
Example #13
0
exports.upload =  function (req, res) {
	var form = new multiparty.Form({ uploadDir: './web/data'});

	form.parse(req, function(err, fields, files) {
		if(err)
		{
			console.warn(err)
			helpers.send('500',res,'ERROR PARSE MUSIC');
		}
	});
    form.on('file', function(name, file) {
		fs.rename(file.path, form.uploadDir + "/" + file.originalFilename, function (err) {
		    if(err)
		    {
		    	console.warn(err)
		    	helpers.send('500',res,'ERROR RENAME MUSIC');
		    }
		  });
		helpers.send('200', res, 'OK');
			
    });
    form.on('error', function(err) {
    	if(err)
    	{
    		console.warn(err)
    		helpers.send('500',res,'ERROR UPLOAD MUSIC');
    	}
    });

}
Example #14
0
    return new Promise((resolve, reject) => {
      this._processedStream = true
      const form = new multiparty.Form(this._multipartyOptions)
      form.on('error', reject)
      form.on('part', (part) => {
        this.onPart(part)
        .then(() => {
          part.resume()
          if (form.flushing <= 0 && this._pendingPromises.size === 0) {
            resolve()
          }
        })
        .catch((error) => form.emit('error', error))
      })

      form.on('field', (name, value) => {
        if (name && typeof (this._fieldsCallback) === 'function') {
          this._fieldsCallback(name, value)
        }
      })

      form.on('close', () => {
        if (this._pendingPromises.size === 0) {
          resolve()
        }
      })
      form.parse(this.req)
    })
Example #15
0
File: file.js Project: bcdbook/m
exports.upload = function(req, res) {
	var oldPath = '';
	var newPath = '';
	// var dirName = __dirname.substring(0, __dirname.length - 16) + '/public/uploads';
	// 通过multiparty创建form对象
	var form = new multiparty.Form()
	form.on('error', function(err) {
		console.log('Error parsing form: ' + err.stack);
	});

	form.on('file', function(name, file) {
		oldPath = file.path;
		//拼接想要上传到的路径
		var rootDir = iutil.getRootDir(); //获取项目根路径
		//通过getFileDir方法获取文件存放的相对路径和文件名
		var fileVal = iutil.getFileDir(file.originalFilename);
		// 拼接文件存放的路径
		var fileDir = '/public/uploads' + fileVal.fileDir;
		//获取文件名
		// var fileName = fileVal.fileName;
		// 生成文件路径
		var newPath = rootDir + fileDir;
		//检测文件路径是否存在,如果不存在则生成一个
		fs.existsSync(newPath) || fs.mkdirSync(newPath);
		newPath += fileVal.fileName;
		// newPath = dirName + iutil.getFileDir(file.originalFilename);

		//重命名为真实文件名
		fs.rename(oldPath, newPath, function(err) {
			if (err) {
				console.log('rename error: ' + err);
			} else {
				console.log('rename ok');
			}
		});

		// res.json({
		// 	code: 200,
		// 	msg: {
		// 		url: newPath
		// 	}
		// });
		res.redirect('/toupload');
	})

	form.on('close', function() {
		console.log('Upload completed!');
		res.json({
			code: 200,
			msg: {
				// url: 'http://' + req.headers.host
				url: newPath
			}
		});
	});
	// Parse req 
	form.parse(req);
}
Example #16
0
 getPostData: function(callback){
     //没有post数据,直接回调
     if (!this.hasPostData()) {
         return callback && callback(this.http);
     }
     var self = this;
     var contentType = this.req.headers["content-type"] || "";
     var deferred = getDefer();
     //异步获取post数据
     var postDataAsync = C('post_data_async');
     //表单数据提交
     if (multiReg.test(contentType)) {
         var multiparty = require("multiparty");
         var form = new multiparty.Form();
         form.on("file", function(name, value){
             self.http.file[name] = value;
         });
         form.on("field", function(name, value){
             self.http.post[name] = value;
         });
         form.on("close", function(){
             if (postDataAsync) {
                 return deferred.resolve(self.http.post);
             }
             return callback && callback(self.http);
         });
         form.parse(this.req);
     }else{
         var buffer = "";
         this.req.setEncoding(C('encoding'));
         this.req.on("data", function(chunk){
             buffer += chunk;
         });
         this.req.on("end", function(){
             //json数据格式
             var jsonConentType = C('post_json_content_type');
             if (!isArray(jsonConentType)) {
                 jsonConentType = [jsonConentType];
             }
             if (jsonConentType.indexOf(contentType) > -1) {
                 self.http.post = JSON.parse(buffer) || {};
             }else{
                 self.http.post = querystring.parse(buffer) || {};
             }
             //请求内容
             self.http.payload = buffer;
             if (postDataAsync) {
                 return deferred.resolve(self.http.post);
             }
             return callback && callback(self.http);
         });
     }
     if (postDataAsync) {
         self.http.postPromise = deferred.promise;
         return callback && callback(self.http);
     }
 },
    this.saveImage = function (req, res, next) {
        var id;
        var products;
        var form;
        var uploadFile;
        var maxSize;
        var extention;
        var supportMimeTypes;
        var errors;
        var out;
        var image;

        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()
            }
            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/products/' + 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) {
                throw new HttpError(400, errors);
            }

            out = fs.createWriteStream(uploadFile.path);
            part.pipe(out);
        });
        form.on('close', function () {
            req.body.image = (uploadFile.path).substr(9);
            next();
        });
        form.parse(req);
    };
Example #18
0
        model.CustomPage.findOne({_id: req.params.id, deleted: false, company: req.company._id}).populate(['urlConfiguration']).exec(function (err, customPage) {
            if (err) {
                return next(Error.create('An error occurred trying get the Custom Page.', { }, err));
            }
            if (!customPage) {
                return res.status(404).end();
            }
            var form = new multiparty.Form();
            var upload;
            form.on('error', next);
            form.on('close', function () {
                var columns = _.map(_.range(1, 16), function (x) {
                    return 'parameter' + x;
                });
                csvparse(upload.data, {columns: columns, delimiter: ';'}, function (err, output) {
                    if (err) {
                        return next(Error.create('An error occurred trying read the values from the CSV file.', { }, err));
                    }
                    var result = upload.data.split(/\r?\n/g);
                    result[0] += ';URL';
                    var i = 1;
                    var domain = require('../../../services/clicksDomain')(customPage.urlConfiguration.subdomain);
                    async.eachSeries(_.rest(output), function (data, callback) {
                        var value = new model.CustomPageValue(data);
                        value.customPage = customPage._id;
                        value.urlGenerated = '/c/' + value._id;
                        value.save(function (err, value) {
                            if (err) {
                                return callback(err);
                            }
                            result[i++] += ';' + domain + value.urlGenerated;
                            callback();
                        });
                    }, function (err) {
                        if (err) {
                            return next(Error.create('An error occurred trying save the values for the Custom Page.', { }, err));
                        }
                        res.attachment(upload.filename);
                        res.send(result.join('\n'));
                    });
                });
            });

            // listen on part event for image file
            form.on('part', function (part) {
                if (!part.filename) return;
                if (part.name != 'values-csv') return part.resume();
                upload = { filename: part.filename, data: '' };
                part.on('data', function (buffer) {
                    upload.data += buffer;
                });
            });

            // parse the form
            form.parse(req);
        });
Example #19
0
app.post('/photo/upload',  function(req, res) {

	if(!req.user){
		return res.error("Auth error.");
	}

	var multiparty = require('multiparty');
	var gm = require('gm');
	var fs = require('fs');
	var form = new multiparty.Form();
	var size = '';
	var fileName = '';

	console.log(req.params.start_year);
	
	form.on('part', function(part){
		//console.log(part);
		if(!part.filename) 
			return;
		size = part.byteCount;
		fileName = part.filename;
	});

	form.on('file', function(name, file){

		//console.log(file);
		//console.log(file.path);
		//console.log(__dirname);
		var tmp_path = file.path
		var target_path = __dirname + '/public/uploads/' + file.originalFilename;
		fs.renameSync(tmp_path, target_path, function(err) {
			if(err) console.error(err.stack);
		});

		// TODO : remove duplicates with phash !
		// TODO : remove file in public folder !

		console.log("cloudinary upload...");
		// Upload on cloudinary
		cloudinary.uploader.upload(target_path, function(result) { 
			console.log("cloudinary upload... done.");
			console.log(result);
			return res.send(result);
		}, { phash : true });
		
		/*gm(tmp_path)
		.resize(150, 150)
		.noProfile()
		.write(thumbPath + 'small.png', function(err) {
		    if(err) console.error(err.stack);       
		});*/
	});

	form.parse(req);
	
});
Example #20
0
  return function(req, res, next) {
    function callback(err) {
      next(err);
      next = function() {};
    }

    function attachBody(part, callback) {
      util.streamToBuffer(part, function(err, buffer) {
        if (err) {
          return callback(err);
        }
        var encoded = part.name + '=' + buffer;
        var data = qs.parse(encoded);
        util.deepExtend(req.body, data);
        callback();
      });
    }

    req.buffers = {};
    var form = new multiparty.Form(options);
    form.on('part', function(part) {
      var name = part.name;
      if (!part.filename) {
        return attachBody(part, function(err) {
          if (err) {
            callback(err);
          }
        });
      }
      if (names.indexOf(name) < 0) {
        return part.resume();
      }
      var type = part.headers['content-type'];

      if (options.extensions && options.extensions.indexOf(mime.extension(type)) < 0) {
        return callback(new Error('Content type not supported'));
      }

      util.streamToBuffer(part, function(err, buffer) {
        if (err) {
          return callback(err);
        }
        req.buffers[name] = buffer;
      });

      part.resume();
    });
    form.on('close', function() {
      callback();
    });
    form.on('error', function(err) {
      callback(err);
    });
    form.parse(req);
  };
Example #21
0
    return function(req, res) {
        console.log("Upload");
        // Se https://www.npmjs.org/package/multiparty
        var form = new multiparty.Form(/*{
            "uploadDir": __dirname + "/../assets",
            "hash": "md5"
        }*/);

        form.on("part", function(part) {
            if (part.filename) {
                console.log("Mottok fil " + part.filename);
                persistence.saveStream(part, req.path);
            } else {
                console.log("Mottok noe annet enn fil");
            }

        });
        form.on("close", function() {
            res.statusCode = 201;
            res.setHeader("Location", req.path);
            res.end("Lastet opp");
        });
        form.on("error", function(err) {
            res.writeHead(400);
            res.end(err + "");
        });
        form.parse(req);
/*            var result = [];
			if (!files || files.length == 0) {
				res.status(400);
				res.json({"error": "No files"});
			}
            for (var fileName in files) {
                if (!files.hasOwnProperty(fileName)) {
                    continue;
                }
                var file = files[fileName][0];
				persistence.copyBinary(file.path,
						function(urlPath) {
							result.push({
								original: {
									"path": urlPath
								}
							});
							res.writeHead(201, {'Location': result[0].path});
							res.end(JSON.stringify(result));

						},
						function(err){
							res.status(500);
							res.end("Error " + 500);
						});
            }
			});*/
    };
Example #22
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 #23
0
            app.post(conf.tarReceiverUrl, function (req, res, next) {
                if (conf.disableReceiver) {
                    return next(new Error('yog2 upload service was disabled'));
                }
                var to = null;
                var filePart = null;

                // 最大200mb
                var form = new multiparty.Form({
                    maxFieldsSize: conf.maxTarSize
                });

                function tryExtract() {
                    if (filePart && to) {
                        extract(filePart, to, function () {
                            reloadApp();
                            reloadView();
                            reloadIsomorphic();
                            ev.emit('cacheClean');
                            conf.onCacheClean && conf.onCacheClean();
                        });
                    }
                }

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

                form.on('part', function (part) {
                    if (!part.filename) {
                        streamToString(part, function (val) {
                            debuglog('got to: [%s]', val);
                            to = val;
                            tryExtract();
                        });
                    }

                    if (part.filename) {
                        filePart = part;
                        tryExtract();
                    }

                    part.on('error', function (err) {
                        return next(err);
                    });
                });

                form.on('close', function () {
                    res.end('0');
                });

                form.parse(req);
            });
Example #24
0
module.exports = function(req, res, next) {
  var form = new multiparty.Form();
  form.on('part', function(part) {
    if (!part.filename) return;
    uploadToS3(part, function(err, data) {
      if (err) return next(err);
      res.json(data);
    });
  });
  form.on('error', next);
  form.parse(req);
};
Example #25
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 #26
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 #27
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 #28
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 #29
0
      r.on('response', function (res) {
        var type = res.headers['content-type']
          , form = new multiparty.Form

        res.headers['content-type'] = type.replace('multipart/mixed', 'multipart/related')
        form.on('part', function (part) {
          partsFound++;
          combined.write(part.pipe(split('\r\n')).pipe(new Parser))
        }).parse(res)
        form.on('close', function () {
          if (opts.max !== partsFound && body.nextPageToken) return loop(body.nextPageToken)
          combined.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');

});