2 var express = require('express');
3 var router = express.Router();
4 var multer = require('multer');
8 router.post('/', multer({ dest: 'uploads/'}), function(req, res, next) {
9 res.send(JSON.stringify('hoge'));
14 var express = require('express');
15 var router = express.Router();
16 var path = require('path');
17 var formidable = require('formidable');
18 var util = require('util');
19 var db = require(__dirname + '/../../../../server/class/DB').instance;
20 var uuid = require('node-uuid');
21 var fs = require('fs');
22 var db = require(__dirname + '/../../../../server/class/DB').instance;
24 router.post('/', function(req, res) {
25 console.log('router post received');
26 var form = new formidable.IncomingForm();
29 console.log('router post received: OK formidable' );
31 form.uploadDir = __dirname + '/../../../../user-specific-files/tmp';
34 form.on('fileBegin', function(parentDirectory, file) {
37 form.parse(req, function(err, parentDirectory, file){
38 res.writeHead(200, {'content-type': 'text/html'});
39 res.write('received upload:\n\n');
41 res.write(util.inspect({files: file})+'¥n');
42 res.end(util.inspect({fields: parentDirectory, files: file}));
45 form.on('file', function(name, file) {
46 var filepath=file.path;
47 var filebase=file.name;
48 console.log(filepath);
49 console.log(filebase);
50 console.log(process.env['WorkspacePATH']+'/'+filebase);
51 //fs.rename(db.dbPath+parentDirectory+filepath, db.dbPath+parentDirectory+filebase, function (err) {
52 fs.rename(filepath, process.env['WorkspacePATH']+'/'+filebase, function (err) {
54 console.log('renamed complete');
56 //db.createFile(filebase, parentDirectory);
57 db.createFile(filebase, '/');
60 console.log('router post received: parse OK');
62 form.on('end', function(err, parentDirectory, file) {
67 form.on('field', function(field, value) {
68 console.log(field, value);
69 fields.push([field, value]);
71 .on('file', function(field, file) {
72 console.log(field, file);
73 files.push([field, file]);
75 .on('end', function() {
76 console.log('-> upload done');
77 res.writeHead(200, {'content-type': 'text/plain'});
78 res.write('received fields:\n\n '+util.inspect(fields));
80 res.end('received files:\n\n '+util.inspect(files));
83 form.on('error', function(err) {
94 form.parse(req, function(err, fields, files) {
96 var parentDirectory = fields['parentDirectory'];
97 if(process.env['NODE_ENV'] === 'debug') {
98 workspace = __dirname + '/../../../../user-specific-files/workspace.debug/';
100 workspace = __dirname + '/../../../../user-specific-files/workspace/';
103 Object.keys(files).forEach(function(key) {
104 var file = files[key];
105 var fileName = file.name;
106 var tmpPath = file.path;
108 parentDirectory: parentDirectory,
114 filesInfo.push(info);
115 promises.push(db.createFile(fileName, parentDirectory)); // file作成に成功したらresolve, 失敗したらreject
118 Promise.all(promises)
119 .catch(function(err) {
120 filesInfo.forEach(function(fileInfo) {
121 fs.unlinkSync(fileInfo.tmpPath);
131 .then(function(fileIds) {
132 fileIds.forEach(function(fileId, i) {
133 filesInfo[i].fileId = fileId;
134 fs.renameSync(filesInfo[i].tmpPath, workspace + fileId);
135 delete filesInfo[i].tmpPath;
150 module.exports = router;