提交 4bf13e56 authored 作者: zyx's avatar zyx

添加 图片上传接口

上级 73132fb9
...@@ -3,10 +3,7 @@ const fs = require('fs') ...@@ -3,10 +3,7 @@ const fs = require('fs')
const conf = require('../config') const conf = require('../config')
const com = require('@god/node-com') const com = require('@god/node-com')
const axios = require('axios') const Proxy = com.Proxy
/* 支持 finally函数 */
require('promise.prototype.finally').shim()
const ckeditorUpload = (req, res) => { const ckeditorUpload = (req, res) => {
/* 文件上传 ckeditor4.5以上返回格式 */ /* 文件上传 ckeditor4.5以上返回格式 */
...@@ -23,50 +20,31 @@ const ckeditorUpload = (req, res) => { ...@@ -23,50 +20,31 @@ const ckeditorUpload = (req, res) => {
if (req.files.length) { if (req.files.length) {
if (!req.files[0].mimetype.startsWith('image')) { sendHtml('', '文件类型错误,请上传图片'); return } if (!req.files[0].mimetype.startsWith('image')) { sendHtml('', '文件类型错误,请上传图片'); return }
if (req.files[0].size > 10 * 1024 * 1024) { sendHtml('', '图片大小超限'); return } if (req.files[0].size > 10 * 1024 * 1024) { sendHtml('', '图片大小超限'); return }
req.files[0].fieldname = 'image' req.files[0].fieldname = 'file'
let headers = req.headers
let options = {} Proxy.reqHttps({
options = { hostname: req.host,
timeout: 30 * 1000, path: '/api/lms/util/upload-file',
url: 'util/upload-image', method: 'POST',
baseURL: conf.agentApiUrl, data: req.body || {},
method: req.method, query: req.query || {},
data: req.body, files: req.files,
params: req.query headers: {
} 'tenant': req.headers.tenant,
headers['accept'] = '*/*' 'Cookie': req.headers.cookie || '',
delete headers['accept-language'] 'User-Agent': req.headers['user-agent'],
'Content-Type': 'multipart/form-data'
let _fileName = com.Tool.ReqType.toFormData(req, options)
headers['token'] = com.Tool.Cookie.getTicketByCAS('_SUP', req)
headers['tenant'] = 'classes'
headers['apikey'] = 'ITol9gsbkEb85gnaxIu7oWfHDOaKgwbH'
headers['Host'] = 'ep-api.ezijing.com'
headers['host'] = 'ep-api.ezijing.com'
axios.defaults.headers = headers
/* 重新转发请求 */
axios(options).then((data) => {
if (data.data.success) {
sendHtml(data.data.url, '')
} else {
sendHtml('', '上传错误,请重试')
} }
req.files.forEach((elem, i) => { }, function (str, obj) {
fs.stat(elem.destination + elem.originalname, (error, stats) => { try {
if (error) { return } const _json = JSON.parse(str)
fs.unlink(elem.destination + elem.originalname, (error) => { if (error) console.log(error) }) if (_json.success) {
}) sendHtml(_json.url, '')
}) } else {
}).catch((e) => { sendHtml('', '上传错误,请重试')
sendHtml('', '上传错误,请重试1')
}).finally(() => {
/* 请求结束,删除服务器端 缓存文件 */
if (_fileName.length) {
for (let i = 0; i < _fileName.length; i++) {
fs.unlinkSync(_fileName[i])
} }
} catch (e) {
sendHtml('', '上传错误,请重试1')
} }
}) })
} }
......
...@@ -13,7 +13,7 @@ const _sccm = require('../controller/setCloudClassMonitor') ...@@ -13,7 +13,7 @@ const _sccm = require('../controller/setCloudClassMonitor')
const _nts = require('../controller/NextToSend') const _nts = require('../controller/NextToSend')
const _pr = require('../controller/ProxyRequest') const _pr = require('../controller/ProxyRequest')
const _wxcsm = require('../controller/wxChartSuccessMonitor') const _wxcsm = require('../controller/wxChartSuccessMonitor')
// const _cm = require('../controller/CkeditorMonitor') const _cm = require('../controller/CkeditorMonitor')
router.use(bodyParser.json({ limit: '60mb' })) router.use(bodyParser.json({ limit: '60mb' }))
router.use(bodyParser.urlencoded({ extended: true, limit: '60mb' })) router.use(bodyParser.urlencoded({ extended: true, limit: '60mb' }))
...@@ -65,7 +65,7 @@ router.use('/v1/pay/wechat/*', _pr.use) ...@@ -65,7 +65,7 @@ router.use('/v1/pay/wechat/*', _pr.use)
router.use('/get/wx-chart/*', _wxcsm.get) router.use('/get/wx-chart/*', _wxcsm.get)
router.use('/set/wx-chart/*', _wxcsm.set) router.use('/set/wx-chart/*', _wxcsm.set)
// 支持 ckeditor 图片上传 // 支持 ckeditor 图片上传
// router.use('/form/ckeditor-upload', upload.any(), _cm.ckeditorUpload) router.use('/form/ckeditor-upload', upload.any(), _cm.ckeditorUpload)
router.use('/api/*', upload.any(), (req, res) => { res.send('暂无该接口') }) router.use('/api/*', upload.any(), (req, res) => { res.send('暂无该接口') })
router.use('*', upload.any(), (req, res) => { res.send('接口未定义') }) router.use('*', upload.any(), (req, res) => { res.send('接口未定义') })
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论