OSDN Git Service

Merge branch 'master' of git.osdn.net:/gitroot/eos/zephyr
[eos/zephyr.git] / server / api / v1 / fileUpload / index.js
old mode 100644 (file)
new mode 100755 (executable)
index 7660ba5..6965eca
@@ -1,3 +1,151 @@
+<<<<<<< HEAD
+/*
+var express = require('express');
+var router = express.Router();
+var multer = require('multer');
+
+var app = express();
+
+router.post('/', multer({ dest: 'uploads/'}), function(req, res, next) {
+res.send(JSON.stringify('hoge'));
+});
+*/
+
+'use strict';
+var express    = require('express');
+var router     = express.Router();
+var path       = require('path');
+var formidable = require('formidable');
+var util = require('util');
+var db = require(__dirname + '/../../../../server/class/DB').instance;
+var uuid = require('node-uuid');
+var fs = require('fs');
+var db = require(__dirname + '/../../../../server/class/DB').instance;
+
+router.post('/', function(req, res) {
+  console.log('router post received');
+  var form = new formidable.IncomingForm();
+  var filesInfo = [];
+
+  console.log('router post received: OK formidable' );
+
+  form.uploadDir = __dirname + '/../../../../user-specific-files/tmp';
+
+  /*
+  form.on('fileBegin', function(parentDirectory, file) {
+  });
+*/
+  form.parse(req, function(err, parentDirectory, file){
+    res.writeHead(200, {'content-type': 'text/html'});
+    res.write('received upload:\n\n');
+    res.write(file+'¥n');
+    res.write(util.inspect({files: file})+'¥n');
+    res.end(util.inspect({fields: parentDirectory, files: file}));
+  });
+
+  form.on('file', function(name, file) {
+    var filepath=file.path;
+    var filebase=file.name;
+    console.log(filepath);
+    console.log(filebase);
+    console.log(process.env['WorkspacePATH']+'/'+filebase);
+    //fs.rename(db.dbPath+parentDirectory+filepath, db.dbPath+parentDirectory+filebase, function (err) {
+    fs.rename(filepath, process.env['WorkspacePATH']+'/'+filebase, function (err) {
+      if (err) throw err;
+      console.log('renamed complete');
+    });
+    //db.createFile(filebase, parentDirectory);
+    db.createFile(filebase, '/');
+  });
+
+  console.log('router post received: parse OK');
+
+  form.on('end', function(err, parentDirectory, file) {
+    console.log('end');
+  });
+
+  /*
+  form.on('field', function(field, value) {
+  console.log(field, value);
+  fields.push([field, value]);
+})
+.on('file', function(field, file) {
+console.log(field, file);
+files.push([field, file]);
+})
+.on('end', function() {
+console.log('-> upload done');
+res.writeHead(200, {'content-type': 'text/plain'});
+res.write('received fields:\n\n '+util.inspect(fields));
+res.write('\n\n');
+res.end('received files:\n\n '+util.inspect(files));
+});
+
+form.on('error', function(err) {
+console.errro(err);
+var i = {
+status: 'error',
+message: err
+}
+res.send(i);
+});
+*/
+
+/*
+form.parse(req, function(err, fields, files) {
+  var workspace;
+  var parentDirectory = fields['parentDirectory'];
+  if(process.env['NODE_ENV'] === 'debug') {
+    workspace = __dirname + '/../../../../user-specific-files/workspace.debug/';
+  } else {
+    workspace = __dirname + '/../../../../user-specific-files/workspace/';
+  }
+  var promises = [];
+  Object.keys(files).forEach(function(key) {
+    var file = files[key];
+    var fileName = file.name;
+    var tmpPath = file.path;
+    var info = {
+      parentDirectory: parentDirectory,
+      fileName: fileName,
+      tmpPath: tmpPath,
+      fileId: null
+    };
+
+    filesInfo.push(info);
+    promises.push(db.createFile(fileName, parentDirectory)); // file作成に成功したらresolve, 失敗したらreject
+  });
+
+  Promise.all(promises)
+  .catch(function(err) {
+    filesInfo.forEach(function(fileInfo) {
+      fs.unlinkSync(fileInfo.tmpPath);
+    });
+
+    var info = {
+      status: 'error',
+      messag: err.message
+    };
+
+    res.send(info);
+  })
+  .then(function(fileIds) {
+    fileIds.forEach(function(fileId, i) {
+      filesInfo[i].fileId = fileId;
+      fs.renameSync(filesInfo[i].tmpPath, workspace + fileId);
+      delete filesInfo[i].tmpPath;
+    })
+    var info = {
+      status: 'success',
+      info: filesInfo
+    };
+    res.send(info);
+  });
+});
+*/
+
+
+=======
 'use strict';
 
 var express    = require('express');
@@ -81,6 +229,7 @@ router.post('/', function(req, res) {
     form.on('end', function() {
         
     });
+>>>>>>> 6b2b2b88511733893d2c6e7848c389abfcd53ba6
 
 });