3 var express = require('express');
4 var router = express.Router()
5 var path = require('path')
6 var formidable = require('formidable')
7 var db = require(__dirname + '/../../../../server/class/DB').instance;
8 var uuid = require('node-uuid');
9 var fs = require('fs');
11 router.post('/', function(req, res) {
12 var form = new formidable.IncomingForm();
15 form.uploadDir = __dirname + '/../../../../user-specific-files/tmp';
17 form.on('fileBegin', function(parentDirectory, file) {
20 form.on('error', function(err) {
30 form.parse(req, function(err, fields, files) {
32 var parentDirectory = fields['parentDirectory'];
33 if(process.env['NODE_ENV'] === 'debug') {
34 workspace = __dirname + '/../../../../user-specific-files/workspace.debug/';
36 workspace = __dirname + '/../../../../user-specific-files/workspace/';
39 Object.keys(files).forEach(function(key) {
40 var file = files[key];
41 var fileName = file.name;
42 var tmpPath = file.path;
45 parentDirectory: parentDirectory,
52 promises.push(db.createFile(fileName, parentDirectory)); // file作成に成功したらresolve, 失敗したらreject
56 .catch(function(err) {
57 filesInfo.forEach(function(fileInfo) {
58 fs.unlinkSync(fileInfo.tmpPath);
68 .then(function(fileIds) {
69 fileIds.forEach(function(fileId, i) {
70 filesInfo[i].status = 'success';
71 filesInfo[i].fileId = fileId;
72 fs.renameSync(filesInfo[i].tmpPath, workspace + fileId);
75 res.send(responsesInfo);
79 form.on('end', function() {
85 module.exports = router;