diff --git a/package.json b/package.json index 145b01d0..830ea760 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,6 @@ }, "dependencies": { "socket.io": "~0.9.10", - "formidable": "~1.0.11", "lastfm": "~0.8.1", "zipstream": "~0.2.1", "express": "~3.0.0rc5", diff --git a/src/server/plugins/upload.co b/src/server/plugins/upload.co index 4816a38c..f46d5d2f 100644 --- a/src/server/plugins/upload.co +++ b/src/server/plugins/upload.co @@ -1,6 +1,5 @@ const Plugin = require('../plugin') - formidable = require 'formidable' mkdirp = require 'mkdirp' fs = require 'fs' path = require 'path' @@ -9,6 +8,9 @@ const temp = require 'temp' mv = require 'mv' {getSuggestedPath} = require '../futils' + express = require 'express' + +multipart = express.multipart(keepExtensions: true) module.exports = class Upload extends Plugin (bus) ~> @@ -91,16 +93,16 @@ module.exports = class Upload extends Plugin cb(err) setUpRoutes: !(app) -> - app.post '/upload', @checkEnabledMiddleware, !(request, response) ~> - logErr = !(err) ~> console.error "Unable to import by uploading. Error: #{err}" - logIfErr = !(err) ~> if err then logErr(err) + app.post '/upload', [@checkEnabledMiddleware, multipart], !(request, response) ~> + !~function logIfErr (err) + if err + console.error "Unable to import by uploading. Error: #{err}" - form = new formidable.IncomingForm() - form.parse request, !(err, fields, file) ~> - return logErr(err) if err - @importFile file.qqfile.path, file.qqfile.filename, logIfErr + for name, file in request.files + @importFile file.path, file.name, logIfErr - response.writeHead 200, {'content-type': 'text/html'} + response.statusCode = 200 + response.setHeader 'content-type', 'application/json' response.end JSON.stringify {success: true} onSendStatus: !(status) ->