Multer и response-native: неожиданный конец многоэлементных данных - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь загрузить некоторые файлы с моего собственного нативного клиента на сервер nodejs, используя multer. Если я пытаюсь загрузить эти файлы с помощью Postman, это прекрасно работает, но когда я делаю это с помощью своего мобильного приложения, оно выдает мне такую ​​ошибку:

Error: Unexpected end of multipart data
    at /home/ema/iDiary/iDiary-server/node_modules/dicer/lib/Dicer.js:62:28
    at processTicksAndRejections (internal/process/next_tick.js:74:9)

Я не думаю, что это проблема с сервером, но эточасть кода, которая принимает файл в:

const multer = require('multer');
const multerupload = multer({ dest: 'tmp/' })
v0.post('/upload-attachments', multerupload.any(), uploadAttachments);

, и это мой собственный собственный код реакции, где я получаю файл с помощью response-native-document-picker:

DocumentPicker.pick({type: [DocumentPicker.types.allFiles]}).then((res) => {
                    let split = res.uri.split('/');
                    let name = split.pop();
                    let inbox = split.pop();
                    const realPath = `${RNFS.TemporaryDirectoryPath}${inbox}/${name}`;
                    this.props.writeTaskData('attachments', {
                        filepath: realPath,
                        filename: res.name,
                        filetype: res.type,
                        name: res.name
                    });
                    console.log('docres',res)
                    this.props.navigation.navigate('Page5');
                })

и вВ конце концов, это код, куда я отправляю файлы на мой сервер:

RNFS.uploadFiles({
                    toUrl: 'https://'+address+':'+port+'/api/v0/upload-attachments',
                    files: [attachment],
                    method: 'POST',
                    headers: {
                    'Accept': 'application/json',
                    },
                    fields: {
                        homeworkId: res.id,
                        name: attachment.filename
                    },
                    begin: uploadBegin,
                    progress: uploadProgress
                })

Если кто-нибудь знает решение, я буду рад ему, если оно поделится им со мной.

...