hedgeagent/1.12.0 #1
2
app.js
2
app.js
@@ -275,7 +275,7 @@ app.use(require('./lib/web/statusRouter'))
|
|||||||
app.use(require('./lib/web/auth'))
|
app.use(require('./lib/web/auth'))
|
||||||
app.use(require('./lib/web/historyRouter'))
|
app.use(require('./lib/web/historyRouter'))
|
||||||
app.use(require('./lib/web/userRouter'))
|
app.use(require('./lib/web/userRouter'))
|
||||||
app.use(require('./lib/web/imageRouter'))
|
app.use(require('./lib/web/imageRouter').default)
|
||||||
app.use(require('./lib/web/note/router'))
|
app.use(require('./lib/web/note/router'))
|
||||||
|
|
||||||
// response not found if no any route matxches
|
// response not found if no any route matxches
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
|
import isSvg from 'is-svg'
|
||||||
|
|
||||||
|
import { createRequire } from 'module'
|
||||||
|
const require = createRequire(import.meta.url)
|
||||||
|
|
||||||
const Router = require('express').Router
|
const Router = require('express').Router
|
||||||
const formidable = require('formidable')
|
const formidable = require('formidable')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
@@ -7,7 +12,6 @@ const fs = require('fs')
|
|||||||
const { v4: uuidv4 } = require('uuid')
|
const { v4: uuidv4 } = require('uuid')
|
||||||
const os = require('os')
|
const os = require('os')
|
||||||
const rimraf = require('rimraf')
|
const rimraf = require('rimraf')
|
||||||
const isSvg = require('is-svg')
|
|
||||||
const { JSDOM } = require('jsdom')
|
const { JSDOM } = require('jsdom')
|
||||||
|
|
||||||
const config = require('../../config')
|
const config = require('../../config')
|
||||||
@@ -24,7 +28,8 @@ try {
|
|||||||
logger.error('Failed to initialize DOMPurify for SVG sanitization:', err)
|
logger.error('Failed to initialize DOMPurify for SVG sanitization:', err)
|
||||||
}
|
}
|
||||||
|
|
||||||
const imageRouter = (module.exports = Router())
|
const imageRouter = Router()
|
||||||
|
export default imageRouter
|
||||||
|
|
||||||
async function checkUploadType (filePath) {
|
async function checkUploadType (filePath) {
|
||||||
const extension = path.extname(filePath).toLowerCase()
|
const extension = path.extname(filePath).toLowerCase()
|
||||||
@@ -32,7 +37,7 @@ async function checkUploadType (filePath) {
|
|||||||
let typeFromMagic = await FileType.fileTypeFromFile(filePath)
|
let typeFromMagic = await FileType.fileTypeFromFile(filePath)
|
||||||
if (extension === '.svg' && (typeFromMagic === undefined || typeFromMagic.mime === 'application/xml')) {
|
if (extension === '.svg' && (typeFromMagic === undefined || typeFromMagic.mime === 'application/xml')) {
|
||||||
const fileContent = fs.readFileSync(filePath)
|
const fileContent = fs.readFileSync(filePath)
|
||||||
if (isSvg(fileContent)) {
|
if (isSvg(fileContent.toString())) {
|
||||||
typeFromMagic = {
|
typeFromMagic = {
|
||||||
ext: 'svg',
|
ext: 'svg',
|
||||||
mime: 'image/svg+xml'
|
mime: 'image/svg+xml'
|
||||||
|
|||||||
Reference in New Issue
Block a user