powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Скачать файл через Axios в Nuxt js посредством Stream
1 сообщений из 1, страница 1 из 1
Скачать файл через Axios в Nuxt js посредством Stream
    #40006323
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, хочу в NuxtJs приложении скачать файл посредством стрима.
Посылаю запрос на бэкэнд
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  await axios
      .post(url, payload,
        {
          headers: {
          'responseType': 'stream',
          'Content-Type': 'multipart/form-data'
          }
        })
      .then(response => {
      });
  } catch (error) {
    errorMessage = error;
  }


на бэкэнде (AspNet Core)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
public async Task<IActionResult> UploadFile()
        {  
            try
            {          
                string path = "C://Temp/test.doc";
                FileStream fs = new FileStream(path, FileMode.Open);

                return new FileStreamResult(fs, new MediaTypeHeaderValue("application/octet-stream"))
                {
                    FileDownloadName = "test.doc"
                };
                return Ok();
            }
            catch (System.Exception ex)
            {
                return BadRequest(ex.Message);
            }
        }


Ответ приходит, все нормально в response.data есть кракозябры, однако как их превратить в файл для загрузки из браузера?
Для Blob я использовал следующую конструкцию:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 const url = window.URL.createObjectURL(new Blob([response.data]));
        const link = document.createElement("a");
        link.href = url;

        const contentDisposition = response.headers["filename"];

        let fileName = "unknown";
        if (contentDisposition) {
          fileName = contentDisposition;
        }

        link.setAttribute("download", fileName);
        document.body.appendChild(link);
        link.click();


Но, хотелось бы обойтись без промежуточного Blob- сделать файл сразу из Stream.
Единственное, что нашел из документации-
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
axios({
  method: 'get',
  url: 'http://bit.ly/2mTM3nY',
  responseType: 'stream'
})
  .then(function (response) {
    response.data.pipe(fs.createWriteStream('ada_lovelace.jpg'))
  });


Но это, как я понимаю для серверного JavaScript, а не для браузерного, потому что что response.data.pipe =Undefined.
Спасибо
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Скачать файл через Axios в Nuxt js посредством Stream
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]