【发布时间】:2018-09-22 20:41:10
【问题描述】:
https://www.tinymce.com/docs/configure/file-image-upload/
这是我将图像从表单获取到云端的设置,但我不知道如何将图像从 tinymce 获取到 req.body 中,或者即使有可能?
我可以使用tinymce.init({}) 或tinymce.activeEditor.uploadImages() 甚至tinymce.activeEditor.uploadImages(function(success) {}) 吗?
架构
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
const docSchema = new mongoose.Schema({
image_url: [String],
});
module.exports = mongoose.model('Doc', docSchema);
表格
form(action="/add" method="POST" class="card" enctype="multipart/form-data")
label(for="image") image:
input(type="file" multiple='multiple' name="image" id="image" accept="image/gif, image/png, image/jpeg")
路由/index.js
const express = require('express');
const router = express.Router();
const myController = require('../controllers/myController');
router.get('/', myController.showDocs);
router.get('/add', myController.addDoc);
router.post('/add',
myController.upload,
myController.imageURL,
myController.createDoc
);
module.exports = router;
myControllers.js
const mongoose = require('mongoose');
const Doc = mongoose.model('Doc');
const multer = require('multer');
const jimp = require('jimp');
const cloudinary = require('cloudinary');
const cloudinaryStorage = require('multer-storage-cloudinary');
cloudinary.config({
cloud_name: process.env.CLOUD_NAME,
api_key: process.env.CLOUD_API_KEY,
api_secret: process.env.CLOUD_SECRET
});
const storage = cloudinaryStorage({
cloudinary: cloudinary,
folder: 'node_upload',
allowedFormats: ['jpg', 'png'],
filename: function (req, file, cb) {
cb(undefined, uuid.v4());
}
});
const multerOptions = {
storage: storage,
fileFilter(req, file, next) {
const image = file.mimetype.startsWith('image/');
if(image) {
next(null, true);
} else {
next({ message: 'That filetype isn\'t allowed!' }, false);
}
}
};
exports.upload = multer(multerOptions).array('image');
exports.imageURL = (req, res, next) => {
if (!req.files) {
next(); // skip to the next middleware
return;
}
image_url = [];
for (var i = 0; i < req.files.length; i++) {
image_url.push(req.files[i].url)
}
req.body.image_url = image_url;
next();
}
exports.createDoc= async (req, res) => {
const doc = new Doc(req.body);
await doc.save();
res.redirect('/');
};
【问题讨论】:
标签: express mongoose tinymce cloudinary