fix: resolve Vue3Dropzone file wrapper access in SlideUploader

- Line 76: Add defensive guard to extract File from Vue3Dropzone wrapper {file: File, id: number}
- Line 79: Use actualFile.name for extension extraction (was file.name)
- Line 81: Use actualFile.name in error message (was file.name)
- Line 87: Append actualFile to FormData instead of wrapper (was file)

Vue3Dropzone v-model provides wrapped file objects, not raw File objects.
This fix ensures proper file access throughout the upload process.
This commit is contained in:
Thorsten Bus 2026-03-02 10:46:16 +01:00
parent 8dc26b8ae3
commit 3225e47fe7

View file

@ -73,17 +73,18 @@ function uploadNextFile(index) {
}
const file = files.value[index]
const actualFile = file.file || file // Handle Vue3Dropzone wrapper {file: File, id: number}
// Validate extension client-side
const ext = '.' + file.name.split('.').pop().toLowerCase()
const ext = '.' + actualFile.name.split('.').pop().toLowerCase()
if (!acceptedExtensions.includes(ext)) {
uploadError.value = `"${file.name}" — Dateityp nicht erlaubt. Nur PNG, JPG, PPT, PPTX und ZIP.`
uploadError.value = `"${actualFile.name}" — Dateityp nicht erlaubt. Nur PNG, JPG, PPT, PPTX und ZIP.`
uploading.value = false
return
}
const formData = new FormData()
formData.append('file', file)
formData.append('file', actualFile)
formData.append('type', props.type)
if (props.serviceId) {