fix: unable to upload custom file in case of incorrect inffered by multiple extensions mapped from mime type with filename extension hints (#20559)
This commit is contained in:
@@ -42,19 +42,38 @@ export const fileUpload: FileUpload = ({
|
||||
})
|
||||
}
|
||||
|
||||
const additionalExtensionMap = new Map<string, string[]>([
|
||||
['text/x-markdown', ['md']],
|
||||
])
|
||||
|
||||
export const getFileExtension = (fileName: string, fileMimetype: string, isRemote?: boolean) => {
|
||||
let extension = ''
|
||||
if (fileMimetype)
|
||||
extension = mime.getExtension(fileMimetype) || ''
|
||||
let extensions = new Set<string>()
|
||||
if (fileMimetype) {
|
||||
const extensionsFromMimeType = mime.getAllExtensions(fileMimetype) || new Set<string>()
|
||||
const additionalExtensions = additionalExtensionMap.get(fileMimetype) || []
|
||||
extensions = new Set<string>([
|
||||
...extensionsFromMimeType,
|
||||
...additionalExtensions,
|
||||
])
|
||||
}
|
||||
|
||||
if (fileName && !extension) {
|
||||
let extensionInFileName = ''
|
||||
if (fileName) {
|
||||
const fileNamePair = fileName.split('.')
|
||||
const fileNamePairLength = fileNamePair.length
|
||||
|
||||
if (fileNamePairLength > 1)
|
||||
extension = fileNamePair[fileNamePairLength - 1]
|
||||
if (fileNamePairLength > 1) {
|
||||
extensionInFileName = fileNamePair[fileNamePairLength - 1].toLowerCase()
|
||||
if (extensions.has(extensionInFileName))
|
||||
extension = extensionInFileName
|
||||
}
|
||||
}
|
||||
if (!extension) {
|
||||
if (extensions.size > 0)
|
||||
extension = extensions.values().next().value.toLowerCase()
|
||||
else
|
||||
extension = ''
|
||||
extension = extensionInFileName
|
||||
}
|
||||
|
||||
if (isRemote)
|
||||
|
Reference in New Issue
Block a user