Esempio n. 1
0
router.post('/upload', function(req, res, next) {
    var form = formidable.IncomingForm()
    var filePath = 'https://axaws.herokuapp.com/';
    var fileServer = 'https://axaws.herokuapp.com/';
    var nameFile = ""
    //Aca entra la peticion y Formidable se encarga de obtener solo el encabezado
    //"file" para asi comenzar a guardarlo
    form.parse(req, ()=>{
    });
    //Al estar ya en el proceso de guardado, Formidable permite modificarlo u 
    //obtener datos del archivo enviado en este caso se le indica a donde se
    //Ira a guardar y se obtiene el nombre para completar la URL de la imagen
    form.on('fileBegin', function(name, file) {
      filePath += file.path = './' + file.name;
      console.log(filePath)
      nameFile = file.name
    });
    //Al finalizar, envia la peticion devuleta ya con la URL de imagen
    //Esta sera guardada como String en la DB y asi solo se manda a llamar eso
    form.on('end', ()=> {
      res.json({"Mensaje": fileServer+nameFile});
      res.end();
    })

});
Esempio n. 2
0
function check_if_user_exists(req, res, next){
  var form = formidable.IncomingForm();
  form.parse(req, function(err, fields, files){
    res.locals.fields = fields;
    if(err) return console.error(err, "Error while parsing incoming form data.");
    db.get("SELECT * FROM users WHERE username=?", fields.username, function(err, user){
      if(err) return console.error(err, "Error while querying database: users.");
      if(user){
        req.session.reset();
        res.render("index/landing", {message: "That username already exists!", layout: "landing"});
      }
      else{
        db.get("SELECT * FROM users WHERE email=?", fields.username, function(err, email){
          if(err) return console.error(err, "Error while querying database: users.");
          if(email){
            req.session.reset();
            res.render("index/landing", {message: "That email address already exists!", layout: "landing"});
          }
          else{
            next();
          }
        });
      }
    });
  });
}
Esempio n. 3
0
  req.models.Loan.findById(id, function (err, loan) {

    if(loan.borrowed) {
      return res.session.set('error', 'Source is already on loan.', function () {
        res.redirect('/sources')
      });
    }

    var form = formidable.IncomingForm()
    form.parse(req, function (err, fields) {

      if (!fields.borrower) {
        return res.session.set('error', 'Borrower must be supplied.', function () {
          res.redirect('/sources')
        })
      }

      if (!fields.area) {
        return res.session.set('error', 'Area must be supplied.', function () {
          res.redirect('/sources')
        })
      }

      loan.borrower = fields.borrower
      loan.area = fields.area
      loan.borrowed = new Date()
      loan.checkedOutBy = req.user.username
      loan.save(function (err) {
        // TODO: Handle error
        res.redirect('/sources', 303)
      })
    })
  })
Esempio n. 4
0
function doRegister(req, res, next) {
    console.log(req.session.name);
    var form = formidable.IncomingForm();
    form.parse(req, function (error, fields, files) {
        if (error) {
            res.redirect('/500error');
        } else {
            var options = {
                'name': fields.name,
                'password': fields.password
            };
            dbModel.insertOne('user', options, function (error, result) {
                    if (error) {
                        console.log(error);
                        res.redirect('/500error');
                    } else {
                        console.log('插入数据成功');
                        //console.log(result);
                        req.session.name = fields.name;
                        res.json({'result': 'success'});
                    }
                }
            )
        }
    })
}
Esempio n. 5
0
function upload(req, res) {
	// upload logic
	if (!isFormData(req)) {
		res.statusCode = 400;
		res.end('Bad Request Type');
		return;
	}

	var form = formidable.IncomingForm();

	form.on('field', function(field, value) {
		console.log(field);
		console.log(value);
	});


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

	form.on('end', function() {
		res.end('Upload Complete!\n');
	});

	form.parse(req);
}
Esempio n. 6
0
app.all('*', function(req,res){
    
    var form   = formidable.IncomingForm();
    var files  = [];
    var fields = []; 
    
    form.encoding       = 'utf-8';
    form.uploadDir      = config.app.uploadDir 
    form.keepExtensions = true;
    form.multiples      = true; 
    
    form.parse(req, function(err, fields, files) {
        if( err ) {
            console.log('file upload error', err); 
            return res.send('error while uploading a file');    
        }

        res.json({
            form: fields, 
            files: files
        }); 

    }); 
    
}); 
app.post('/showupload', function(req, res) {
	var form = formidable.IncomingForm();
	form.parse(req, function(err, fields, files) {
		console.log(files.filetoupload.path);
		var oldpath = files.filetoupload.path;
		try {
			var tmpcontents = fs.readFileSync(oldpath);
			JSON.parse(tmpcontents);
		}
		catch(error) {
			console.error(error);
			res.redirect('/config');
			return;
		}
		var newpath = 'show.json';
		fs.rename(oldpath, newpath, function (err) {
			if (err) throw err;
			var contents = fs.readFileSync("show.json");
			show = JSON.parse(contents);
			populate_resistance_predictions();
			res.redirect('/config');
			io.emit('fresh data', boardinfo, telemetry, predictions, show);
		});
	});
});
Esempio n. 8
0
function addNewPaint(req, res) {
    var form = formidable.IncomingForm();
    form.uploadDir = uploadDir;
    
    form.parse(req, function(err, fields, files) {
        var title = fields.title;
        var image = files.image;
        
        console.log(image);
        
        var date = new Date();
        var newImageName = 'image_' + date.getHours() + date.getMinutes() + date.getSeconds();
        var ext = pathUtil.parse(image.name).ext;
        
        var newPath = __dirname + '/image/' + newImageName + ext;
        
        fs.renameSync(image.path, newPath);
        
        var url = 'image/' + newImageName + ext;
        
        var info = {
            title : title, image:url
        }
        
        paintList.push(info);
        
        res.statusCode = 302;
        res.setHeader('Location', '.');        
        res.end('Success');
        
    });
}
Esempio n. 9
0
function upload( req, res ) {
	if(!isFormData(req)) {
		res.statusCode = 400;
		res.end('Bad request: expecting multipart/form-data');
		return;
	}

	var form = formidable.IncomingForm();

	form.on('field', function( field, value ) {
		console.log(field);
		console.log(value);
	});

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

	form.on('end', function() {
		res.end('Upload complete!');
	});

	form.on('progress', function( bytesReceived, bytesExpected ) {
		var percent = Math.floor(bytesReceived / bytesExpected * 100);
		console.log(percent);
	})

	form.parse(req);
}
Esempio n. 10
0
app.post('/edit/:id', function (req, res){
  var id = req.params.id;
  var form = formidable.IncomingForm();
  form.parse(req, function (err, fields, files){
    firebase.child('items').child(id).update(fields);
  });
  res.redirect('/');
});
Esempio n. 11
0
app.post('/register', function (req, res) {
  var form = formidable.IncomingForm();
  form.parse(req, function (err, fields, files) {
    firebase.createUser(fields)
  });
    
  res.redirect('/');
});
Esempio n. 12
0
app.post('/add',function (req, res){
  var form = formidable.IncomingForm();
  form.parse(req, function (err, fields, files) {
    var inventoryItems = firebase.child('items');
    inventoryItems.push(fields);
  });
  res.redirect('/');
});
Esempio n. 13
0
var getParams = function*(next){
  var form = formidable.IncomingForm(); 
  var params = yield yil.callback({scope:form, func:form.parse}, this.req);
  params = params['0']; 
  for(var k in params){
    this.params[k] = params[k]; 
  }
  yield next; 
}
Esempio n. 14
0
router.post('/', function(req, res) {
	//创建上传表单
	var form = formidable.IncomingForm();
	//设置编码
	form.encoding = 'utf-8';
	//设置目录
	form.uploadDir = 'public' + FILE_UPLOAD_FOLDER;
	//保存后缀
	form.keepExtensions = true;
	//最大字节
	form.maxFieldsSize = 2 * 1024 * 1024;
	form.parse(req, function(err, fields, files) {
		if (err) {
			res.locals.err = err;
			res.render('upload', {
				title: TITLE
			});
			return;
		}

		var extName = '';
		switch (files.file.type) {
			case 'image/pjpeg':
				extName = 'jpg';
				break;
			case 'image/jpeg':
				extName = 'jpg';
				break;
			case 'image/png':
				extName = 'png';
				break;
			case 'image/x-png':
				extName = 'png';
				break;
		}
		if (extName.length == 0) {
			res.locals.error = '只支持png和jpg格式图片';
			res.render('upload', {
				title: TITLE
			});
			return;
		}

		var fileName = Math.random() + '.' + extName;
		var newPath = form.uploadDir + fileName;

		//目录不存在将报错,后续优化
		fs.renameSync(files.file.path, newPath); //重命名
	});
	

	res.locals.success = '上传成功';
	res.render('upload', {
		title: TITLE
	});
});
exports.create = function(req, res) {
    var form = formidable.IncomingForm();
    form.encode = 'utf-8';
    form.uploadDir = 'public/upload/';
    form.keepExtensions = true;
    form.maxFieldsSize = 20 * 1024 * 1024; // 最大上传20M

    form.parse(req, function(err, fields, files) {
        if (err) return res.status(400).json({ message: getErrorMessage(err) });

        if (!files.cover) return res.status(400).json({ message: '请上传封面图' });

        var coverExtName = ''; // 后缀名

        switch (files.cover.type) {
            case 'image/pjpeg':
                coverExtName = 'jpg';
                break;
            case 'image/jpeg':
                coverExtName = 'jpg';
                break;
            case 'image/png':
                coverExtName = 'png';
                break;
            case 'image/x-png':
                coverExtName = 'png';
                break;
        }

        if (coverExtName.length == 0) {
            return res.json({ error: '封面只支持png和jpg格式图片' });
        }

        var dimensions = sizeOf(files.cover.path);
        var newPath = files.cover.path.split('.')[0] + '@' + dimensions.width + 'x' + dimensions.height + '.' + coverExtName;

        fs.renameSync(files.cover.path, newPath);

        // 存进数据库
        var data = objectAssign({}, fields, {
            cover: newPath.split('public')[1],
            src: files.src.path.split('public')[1]
        });

        var mu = new Mu(data);
        mu.creator = req.user;
        mu.save(function(err) {
            if (err) {
                return res.status(400).json({ message: getErrorMessage(err) });
            } else {
                return res.json(mu);
            }
        });
    });
};
Esempio n. 16
0
 req.models.Loan.findById(id, function (err, loan) {
   var form = formidable.IncomingForm()
   form.parse(req, function (err, fields) {
     loan.returned = new Date()
     loan.checkedInBy = req.user.username
     loan.save(function (err) {
       // TODO: Handle error
       applyNewLoan(loan.source, req, res)
     })
   })
 })
Esempio n. 17
0
		"POST": function(req, res) {
			var form = formidable.IncomingForm();
			form.parse(req, function(err, fields, files) {
				console.log("fields:");
				console.dir(fields);
				console.log("files:");
				console.dir(files);

				fs.readFile(files["board"].path, function(err, imgBuf) {
					console.time("parse image");
					var screen = parseSS(imgBuf);
					console.log("board:");
					console.dir(screen.board);
					console.log("tiles:", screen.tiles);
					console.timeEnd("parse image");

					console.time("find placement");
					var placement = solver.getMaxScoringPlacement(screen.board, screen.tiles);
					console.log("max placement:");
					console.dir(placement);
					console.timeEnd("find placement");


					var dc = 1, dr = 0;
					if(placement.isVertical) { dc = 0; dr = 1; }
					for(var i = 0; placement.pattern && i < placement.pattern.length; i++) {
						if(placement.pattern[i] !== "?") { continue; }

						screen.board[placement.row + dr * i][placement.col + dc * i] = "(#)";
					}

					var out = "tiles: " + util.inspect(screen.tiles) + "\n\n";
					out += "results:\n" + util.inspect(placement) + "\n\n";
					out += "board:";
					for(var r = 0; r < screen.board.length; r++) {
						out += "\n---" + Array(screen.board[r].length).join("+---") + "\n";

						for(var c = 0; c < screen.board[r].length; c++) {
							var chr = screen.board[r][c];

							if(chr.length <= 1) { chr = " " + chr.toUpperCase() + " "; }

							out += (c > 0 ? "|" : "") + chr;
						}
					}

					res.text(out);
				});
			});
		}
Esempio n. 18
0
function upload(response, request) {
    console.log("Request handler 'upload' was called.");

    var form = formidable.IncomingForm();
    console.log("About to parse.");
    form.parse(request, function(error, fields, files) {
        console.log("Parsing done.");
        fs.renameSync(files.upload.path, "/tmp/test.png");
        response.writeHead(200, {"Content-Type": "text/html"});
        response.write("Received Image:<br />");
        response.write('<img src="/show" />');
        response.end();
    });
}
Esempio n. 19
0
app.post('/login', function (req, res) {
  var form = formidable.IncomingForm();
  form.parse(req, function (err, fields, files) {
    firebase.authWithPassword(fields, function (error, authData) {
      if (error) {
          res.render('login', {
              error: true
          });
      } else {
          res.redirect('/');
      }
    });
  });
});
Esempio n. 20
0
function upload(response, request) {
    console.log("upload called");
    var form = formidable.IncomingForm();
    form.parse(request, function(error, fields, files) {
        console.log("parsing done");
        fs.rename(files.upload.path, "test.png", function(error) {
            if (error) {
                fs.unlink("test.png");
                fs.rename(files.upload.path, "test.png");
            }
        });

        write(response, "received image:<br/><img src='/show' />");
    });
}
Esempio n. 21
0
function upload(request, response, number) {
  var form = formidable.IncomingForm()
  var util = require('util'),
      fields = [],
      files = []
  form.on('file', function(field, file) {
    files.push([field, file]);
    fs.mkdir("img/.data/"+number+"/", function() {
      var source = fs.createReadStream(file.path);
      var dest = fs.createWriteStream('img/.data/'+number+'/image.jpg');
      source.pipe(dest);
    });
  });
  form.parse(request);
}
Esempio n. 22
0
app.route = function(action, req, res, match) {

  if (req.method === 'OPTIONS') {
    res.statusCode = 204;
    return res.end();
  }

  var parsed = url.parse(req.url, true),
    form = formidable.IncomingForm(),
    input = this;

  // add extension if there is one
  req.extension = match.params.ext;

  // set the response content type
  this.setContentType(req, res);

  // limit the size of the request
  this.limit(req, res);

  req.publicKey = match.params.publicKey;

  // the private key might come in the header or as a GET var depending on the method used for sending data.
  req.privateKey = req.headers['phant-private-key'] ? req.headers['phant-private-key'] : parsed.query.private_key;

  // add the query to the request
  req.query = parsed.query;

  // strip out cruft
  delete req.query.callback;
  delete req.query.private_key;

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

    // add the parsed body to the request
    req.body = fields;

    // any delete should be passed to the clear action
    if (req.method === 'DELETE') {
      return input.clear(req, res);
    }

    // call the action
    input[action].call(input, req, res);

  });

};
Esempio n. 23
0
        parseData(req, cb) {
            if(req.method == 'POST') {
                let form = formidable.IncomingForm();
                form.parse(req, (err, fields, files) => {
                    if(err) {
                        return cb(err);
                    }

                    cb(
                        err,
                        fields,
                        files
                    );
                });
            }
        }
Esempio n. 24
0
module.exports = function (req, res) {
    var form = formidable.IncomingForm({uploadDir: './public/tmp/images'});

    console.log(req.body);
    form.parse(req, function(err, fields, files) {
        console.log(files);
        var tempPath = files.avatar.path;
        var extension = path.extname(files.avatar.name).toLowerCase();
        var targetPath = path.resolve('./public/user_data/' + req.user.id + '/avatar' + extension);

        if(files.avatar.size > 524288)
        {
            res.send({
                status: false,
                message: "image_too_big"
            });

            return;
        }

        if (extension === '.png' || extension === '.jpg') {
            if(!fs.existsSync('./public/user_data/' + req.user.id))
                fs.mkdirSync('./public/user_data/' + req.user.id);

            fs.rename(tempPath, targetPath, function (err) {
                if (err) throw err;
                editProfile(req, res, extension);
            });
        } else {
            fs.unlink(tempPath, function () {
                if (err) throw err;

                res.send({
                    status: true,
                    message: 'image_upload_unsuccessful'
                });
            });
        }
    });

//
}
Esempio n. 25
0
http.createServer(function (req, res) {
  if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
    // parse a file upload
    var form = formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.write('Received upload \n\n');
      res.end(sys.inspect({fields: fields, files: files}));
    });
    return;
  }

  res.writeHead(200, {'content-type': 'text/html'});
  res.end(
    '<form action="/upload" enctype="multipart/form-data" method="post">' +
    '<input type="text" name="title"><br>' +
    '<input type="file" name="upload" multiple="multiple"><br>' +
    '<input type="submit" value="Upload"></form>'
  );
}).listen(8888, function () {
Esempio n. 26
0
function addNewMovie(req, res)
{
	var form = formidable.IncomingForm();
	form.uploadDir = uploadDir;

	// parse the request and separate fields and files
	form.parse(req, function(err, fields, files)
	{
		var title = fields.title;
		var image = files.image;

		console.log(image);

		// make new file name for image
		var date = new Date();
		var newImageName = 'image_' + date.getHours() + date.getMinutes() + date.getSeconds();
		var ext = pathUtil.parse(image.name).ext;

		var newPath = __dirname + '/img/' + newImageName + ext;

		fs.renameSync(image.path, newPath);


		var url = 'img/' + newImageName + ext;

		var info = 
		{
			title : title,
			image : url,
			director : fields.director,
			year : fields.year
		};

		movieList.push(info);

		// applying PRG pattern
		res.statusCode = 302;
		res.setHeader('Location', '.');
		res.end('Success');
	});
}
Esempio n. 27
0
export function processRequest(req, { uploadDir } = {}) {
  // Ensure provided upload directory exists
  if (uploadDir) {
    fs.ensureDirSync(uploadDir);
  }

  const form = formidable.IncomingForm({
    // Defaults to the OS temp directory
    uploadDir,
  });

  // Parse the multipart form request
  return new Promise((resolve, reject) => {
    form.parse(req, (error, { operations }, files) => {
      if (error) {
        return reject(new Error(error));
      }
      debug('parsing form data');
      // Decode the GraphQL operation(s). This is an array
      // if batching is enabled.
      operations = JSON.parse(operations);
      // Check if files were uploaded
      if (Object.keys(files).length) {
        // File field names contain the original path to
        // the File object in the GraphQL operation input
        // variables. Relevent data for each uploaded file
        // now gets placed back in the variables.
        const operationsPath = objectPath(operations);
        Object.keys(files).forEach(variablesPath => {
          const { name, type, size, path } = files[variablesPath];
          return operationsPath.set(variablesPath, { name, type, size, path });
        });
      }

      // Provide fields for replacement request body
      return resolve(operations);
    });
  });
}
Esempio n. 28
0
            function saveFile() {
              var extension = '.jpg',
                  newName = doc.twitter + extension,
                  fileName = path.join(p, newName),
                  data = "";

              path.exists(fileName,
                function(exists) {
                  if(exists) {
                    winston.warn('Upload file is being overwritten.');
                  }
                });

              var form = formidable.IncomingForm();
              form.uploadDir = p;
              form.keepExtensions = true;

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

                  imgUtil.fixImage(files.file.path,
                    function(dstPath) {
                      doc.photo = dstPath;
                      doc.save();
                    });

                  res.writeHead(200, {'Content-Type': 'application/json'});
                  res.end('{ "valid": true }');

              });

              for(var i=0;i<req.chunks.length;i++) {
                req.emit('data', req.chunks[i]);
              }
            }
Esempio n. 29
0
/**
 * Receive the POST data and pass it to the updateDB funtion
 * @param response Response object to send the data
 * @param request Incoming request
 */   
function getPost(request, response) {
	// request.setEncoding("utf8");
	// request.content = '';
	// request.addListener("data", function(chunk) {
	// 	request.content += chunk;
	// });
	//  
	// request.addListener("end", function() {
	// 	var qs = require('querystring');
	// 	POST=qs.parse(request.content);
	// 	updateDB(POST,response);
	// });
	var form = formidable.IncomingForm();
	//TODO: I think this can break too easily.
	//would like to have __approot + '/public/uploads/'
	form.uploadDir = __dirname + '/../public/uploads/';
	
	form.parse(request, function(err, fields, files){
//		if (err) throw err;
		
		console.log(fields);
		console.log(files);
		
		if(files.file){
			var newPath = form.uploadDir + fields.id + "/"
			fs.mkdir(newPath, 755);
			var newName = newPath + files.file.name;
			fs.rename(files.file.path, newName);
			fields.fileLocation = files.file.name;
		}
		
		if(fields.deleteFile) fields.fileLocation = '';
		
		updateDB(fields, response);
	});
}
Esempio n. 30
0
router.post('/files/upload', function(req, res, next) {
  console.log(config.uploadDir);
  var form = formidable.IncomingForm();
  form.encoding = 'utf-8';
  form.uploadDir = config.uploadDir;
  form.keepExtensions = true;
  form.multiples = true;
  // form.maxFieldsSize = 2 * 1024 * 1024; // 单位为byte

  form.on('progress', function(bytesReceived, bytesExpected) {
    var progressInfo = {
      value: bytesReceived,
      total: bytesExpected
    };
    console.log('[progress]: ' + JSON.stringify(progressInfo));
  }); 

  form.on('end', function() {
    console.log('end'); 
    res.end('success');
  });

  form.on('error', function(err) {
    console.error('upload failed', err.message);
    next(err);
  });

  form.parse(req, function(err, fields, files) {
    for(var key in files) {
      var file = files[key];
      fs.rename(file.path, config.uploadDir + '/' + file.name, function(err) {
        console.log('rename %s failed', file.name);
      });
    }
  });
});