X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=server%2Fapi%2Fv1%2FfileUpload%2Findex.js;h=6965eca0347da6eb07e70ec39a973631546241a1;hb=HEAD;hp=7660ba5d205c6c4186f0fcdb5e97a562664d6822;hpb=6b2b2b88511733893d2c6e7848c389abfcd53ba6;p=eos%2Fzephyr.git diff --git a/server/api/v1/fileUpload/index.js b/server/api/v1/fileUpload/index.js old mode 100644 new mode 100755 index 7660ba5..6965eca --- a/server/api/v1/fileUpload/index.js +++ b/server/api/v1/fileUpload/index.js @@ -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 });