From be8b8a241dcd29e786bc52d188474395745414a4 Mon Sep 17 00:00:00 2001 From: Gustav Hansen Date: Fri, 25 Mar 2022 15:59:42 +0100 Subject: [PATCH] Upload: Apply fallback mime-type if none is set --- packages/core/upload/package.json | 1 + packages/core/upload/server/graphql.js | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/core/upload/package.json b/packages/core/upload/package.json index 3b8b6a3dbf..f32d6e5ab5 100644 --- a/packages/core/upload/package.json +++ b/packages/core/upload/package.json @@ -33,6 +33,7 @@ "koa-range": "0.3.0", "koa-static": "5.0.0", "lodash": "4.17.21", + "mime-types": "2.1.35", "react": "^17.0.2", "react-copy-to-clipboard": "^5.0.3", "react-dom": "^17.0.2", diff --git a/packages/core/upload/server/graphql.js b/packages/core/upload/server/graphql.js index f6bea4f66a..19b9f132df 100644 --- a/packages/core/upload/server/graphql.js +++ b/packages/core/upload/server/graphql.js @@ -2,6 +2,7 @@ const path = require('path'); const os = require('os'); +const mime = require('mime-types'); const fse = require('fs-extra'); const { getStreamSize } = require('./utils/file'); @@ -48,7 +49,7 @@ module.exports = ({ strapi }) => { const currentFile = uploadService.formatFileInfo( { filename, - type: mimetype, + type: mimetype || mime.lookup(filename), size: await getStreamSize(createReadStream()), }, extraInfo || {}, @@ -143,16 +144,16 @@ module.exports = ({ strapi }) => { const { files: uploads, ...metas } = args; const files = await Promise.all( - uploads.map(upload => formatFile(upload, {}, { ...metas, tmpWorkingDirectory })) + uploads.map((upload) => formatFile(upload, {}, { ...metas, tmpWorkingDirectory })) ); const uploadService = getUploadService('upload'); const uploadedFiles = await Promise.all( - files.map(file => uploadService.uploadFileAndPersist(file, {})) + files.map((file) => uploadService.uploadFileAndPersist(file, {})) ); - sanitizedEntities = uploadedFiles.map(file => + sanitizedEntities = uploadedFiles.map((file) => toEntityResponse(file, { args, resourceUID: fileTypeName }) ); } finally {