Bugfix/Address file name with special chars (#3496)

address file name with special chars
This commit is contained in:
Henry Heng
2024-11-09 15:21:09 +00:00
committed by GitHub
parent 0153735704
commit 1e2dc03527
6 changed files with 14 additions and 3 deletions
@@ -140,6 +140,8 @@ const uploadFilesToAssistantVectorStore = async (req: Request, res: Response, ne
if (Array.isArray(files)) {
for (const file of files) {
// Address file name with special characters: https://github.com/expressjs/multer/issues/1104
file.originalname = Buffer.from(file.originalname, 'latin1').toString('utf8')
uploadFiles.push({
filePath: file.path,
fileName: file.originalname
@@ -81,6 +81,8 @@ const uploadAssistantFiles = async (req: Request, res: Response, next: NextFunct
if (Array.isArray(files)) {
for (const file of files) {
// Address file name with special characters: https://github.com/expressjs/multer/issues/1104
file.originalname = Buffer.from(file.originalname, 'latin1').toString('utf8')
uploadFiles.push({
filePath: file.path,
fileName: file.originalname
+2 -1
View File
@@ -161,7 +161,8 @@ export const utilBuildChatflow = async (req: Request, isInternal: boolean = fals
const fileNames: string[] = []
for (const file of files) {
const fileBuffer = fs.readFileSync(file.path)
// Address file name with special characters: https://github.com/expressjs/multer/issues/1104
file.originalname = Buffer.from(file.originalname, 'latin1').toString('utf8')
const storagePath = await addArrayFilesToStorage(file.mimetype, fileBuffer, file.originalname, fileNames, chatflowid)
const fileInputFieldFromMimeType = mapMimeTypeToInputField(file.mimetype)
@@ -42,6 +42,10 @@ export const createFileAttachment = async (req: Request) => {
for (const file of files) {
const fileBuffer = fs.readFileSync(file.path)
const fileNames: string[] = []
// Address file name with special characters: https://github.com/expressjs/multer/issues/1104
file.originalname = Buffer.from(file.originalname, 'latin1').toString('utf8')
const storagePath = await addArrayFilesToStorage(file.mimetype, fileBuffer, file.originalname, fileNames, chatflowid, chatId)
const fileInputFieldFromMimeType = mapMimeTypeToInputField(file.mimetype)
+2 -1
View File
@@ -56,7 +56,8 @@ export const upsertVector = async (req: Request, isInternal: boolean = false) =>
for (const file of files) {
const fileNames: string[] = []
const fileBuffer = fs.readFileSync(file.path)
// Address file name with special characters: https://github.com/expressjs/multer/issues/1104
file.originalname = Buffer.from(file.originalname, 'latin1').toString('utf8')
const storagePath = await addArrayFilesToStorage(file.mimetype, fileBuffer, file.originalname, fileNames, chatflowid)
const fileInputFieldFromMimeType = mapMimeTypeToInputField(file.mimetype)
@@ -702,7 +702,6 @@ export const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, preview
if (fullFileUpload) {
const filesWithFullUploadType = uploadedFiles.filter((file) => file.type === 'file:full')
if (filesWithFullUploadType.length > 0) {
const formData = new FormData()
for (const file of filesWithFullUploadType) {
@@ -712,12 +711,14 @@ export const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, preview
const response = await attachmentsApi.createAttachment(chatflowid, chatId, formData)
const data = response.data
for (const extractedFileData of data) {
const content = extractedFileData.content
const fileName = extractedFileData.name
// find matching name in previews and replace data with content
const uploadIndex = uploads.findIndex((upload) => upload.name === fileName)
if (uploadIndex !== -1) {
uploads[uploadIndex] = {
...uploads[uploadIndex],