Отправка файла через POST с помощью fs.createReadStream не отправляет файл - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть следующий код.Проблема в том, что файл не всегда перехватывается моим сервером (размещенным на DigitalOcean, не то, чтобы это имело значение, поскольку я часто даже не мог заставить его работать на моей локальной бродячей машине).

ЭтоПохоже, что он работает с файлами меньшего размера, изображениями меньшего размера, однако, если я отправляю файл большего размера (например, полноэкранный снимок экрана), мой сервер сообщает мне, что запрос выполнен, но «изображение» не найдено.

Я искал способ для createReadStream возвратить какое-то обещание, в надежде, что это будет так же просто, как он все еще пытается прочитать изображение с жесткого диска, но у меня былне повезло.

Стоит упомянуть, что изображение генерируется непосредственно перед тем, как это происходит, но это вызывается в обратном вызове, так что это не должно иметь значения.

...
    const capture = fs.createReadStream(filePath);

    request.post({
        url: UPLOAD_URL,
        method: 'POST',
        formData: {
            'image': capture,
            'token': this.token
        },
        headers: {
            'User-Agrent': 'request',
            'Content-Type': 'multipart/form-data'
        }
    }, (err, response, body) => {
...
...