Реакция, выборка, поврежденный файл при загрузке - PullRequest
0 голосов
/ 21 февраля 2020

Я загружаю файл, используя whatwg-fetch

Когда я отправляю файл на сервер, кажется, все работает без проблем, у меня есть следующие заголовки

Content-Length: 6941
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryUZ3MAI9SPh2fjdl3

И code

export function addImage(image, name) {
    return (dispatch, getState) => {
        const { user } = getState();
        let data = new FormData();
        data.append('image', image);
        data.append('name', name);
        return fetch(generateUrl(`/image?token=${user.token}`), {
            method: 'POST',
            body: data
        })
            .then(response => {
                return response.json()
                    .then(json => {
                        if (!response.ok) return console.error(json);
                        dispatch(getImages())
                    });
            })
    }
}

Затем я получаю код на сервере

router.post('/', securityController.middleware('post_image'), multer().single('image'), (req, res, next) => {
    fs.writeFileSync('test.jpeg', req.file.buffer)

    imageDataProvider.addImage(req.body.name, req.file)
    .then(image => res.json(image))
    .catch(next)
})

У меня есть два теста, один загружает на s3, а другой записывает в test.jpeg

Но загруженное изображение повреждено, это изображение, которое я получаю

{ fieldname: 'image',
  originalname: 'download.jpeg',
  encoding: '7bit',
  mimetype: 'image/jpeg',
  buffer:
   <Buffer c3 bf c3 98 c3 bf c3 a0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 c3 bf c3 9b 00 c2 84 00 09 06 07 12 12 10 15 0f 10 10 15 10 0f 0f 0f 0f 10 0f ... >,
  size: 9783 }

Я не понимаю, почему размер отличается. Образ поврежден как на s3, так и на локальном хранилище

Сервер является безсерверным (я имею в виду ту же проблему, которая работает с автономным или автономным сервером)

...