ueditor.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. var _ = require('lodash');
  2. var path = require("path");
  3. var Busboy = require('busboy');
  4. var fs = require("fs");
  5. var uniqid = require('uniqid');
  6. var ueditor_config = require(path.join(process.cwd(),"/config/ueditor.config.js"));
  7. var upload_config = require('config').get("upload_config");
  8. var filetype = 'jpg,png,gif,ico,bmp';
  9. module.exports = function(req,res,next) {
  10. if(req.query.action == "config") {
  11. // 吐给客户端配置信息
  12. res.jsonp(ueditor_config);
  13. } else if (req.query.action === 'uploadimage' || req.query.action === 'uploadfile' || req.query.action === 'uploadvideo') {
  14. var busboy = new Busboy({ headers: req.headers });
  15. busboy.on('file', function (fieldname, file, filename, encoding, mimetype) {
  16. var fileExtArray = filename.split(".");
  17. var ext = fileExtArray[fileExtArray.length - 1];
  18. var save_filename = uniqid() + "." + ext;
  19. var savePath = path.join(process.cwd(),upload_config.get("upload_ueditor"),save_filename);
  20. file.on('end', function () {
  21. var result = {
  22. 'url': upload_config.get("baseURL")+"/" + upload_config.get("upload_ueditor") + "/" + save_filename,
  23. 'title': req.body && req.body.pictitle || filename,
  24. 'original': filename,
  25. 'state': 'SUCCESS'
  26. };
  27. if(req.query.encode) {
  28. res.jsonp(result);
  29. } else {
  30. res.redirect(upload_config.get("simple_upload_redirect") + "?result=" + JSON.stringify(result));
  31. // res.redirect(result.url);
  32. }
  33. });
  34. file.pipe(fs.createWriteStream(savePath));
  35. });
  36. req.pipe(busboy);
  37. } else if(req.query.action === 'listimage') {
  38. fs.readdir(path.join(process.cwd(),upload_config.get("upload_ueditor")),function(err, files){
  39. if(err) return res.end();
  40. var total = files.length;
  41. var filelist = [];
  42. var total = 0;
  43. _(files).forEach(function(file){
  44. var fileExtArray = file.split(".");
  45. var ext = fileExtArray[fileExtArray.length - 1];
  46. if (filetype.indexOf(ext.toLowerCase()) >= 0) {
  47. var result_file = {};
  48. result_file.url = upload_config.get("baseURL")+"/" + upload_config.get("upload_ueditor") + "/" + file;
  49. filelist.push(result_file);
  50. total ++;
  51. }
  52. });
  53. res.jsonp({
  54. "state": "SUCCESS",
  55. "list": filelist,
  56. "start": 1,
  57. "total": total
  58. });
  59. })
  60. }
  61. }