Как скачать файл xlsx в формате Blob по прямой ссылке, чтобы после этого сохранить его в сторе?

Ссылка скопирована
1 ответ

Всем привет! Мне необходимо скачать файл в формате blob по прямой ссылке на S3. Ссылка выглядит следующим образом: "https://example.amazonaws.com/public/example/.../e...".
Методами axios не получилось достучаться к S3.

... axios.request({           responseType: 'arraybuffer',           url: download_src,           method: 'get',           headers: {             'Content-Type': 'blob',           },         }); ...

... axios.request({ responseType: 'arraybuffer', url: download_src, method: 'get', headers: { 'Content-Type': 'blob', }, }); ...

Решения подобные этому здесь не подойдут, так как задача исключает использование кнопок и т.д. :

const link = document.createElement('a'); link.href = `exampleLink`; document.body.appendChild(link); link.click(); document.body.removeChild(link);

const link = document.createElement('a'); link.href = `exampleLink`; document.body.appendChild(link); link.click(); document.body.removeChild(link);

Важно загружать файл в определенный момент и хранить его в сторе, для дальнейшей работы с ним. Подскажите какие могут быть методы решения?

Дополнительно:

почему нужно пользоваться axios а не штатным XMLHttpRequest? причем тут 'Content-Type': 'blob'? что за ошибку тебе верну amazon? смотри подробности в браузерной консоли вкладка network

  • rPman, ошибка CORS

    Как скачать файл xlsx в формате Blob по прямой ссылке, чтобы после этого сохранить его в сторе?

  • Значит напрямую из браузера это не получится. Делай запрос на сервере
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Павел Админов Ответ

    Для того чтобы скачать файл xlsx в формате Blob по прямой ссылке и сохранить его в сторе, вам понадобится использовать JavaScript. Ниже приведен пример кода, который позволит вам это сделать:

    ```html

    Скачать файл xlsx

    function downloadFile() {
    fetch('ссылка_на_ваш_файл.xlsx')
    .then(response => response.blob())
    .then(blob => {
    const url = window.URL.createObjectURL(new Blob([blob]));
    const a = document.createElement('a');
    a.href = url;
    a.download = 'file.xlsx';
    document.body.appendChild(a);
    a.click();
    window.URL.revokeObjectURL(url);
    });
    }

    ```

    В этом примере мы используем функцию `fetch` для загрузки файла по прямой ссылке. Затем мы преобразуем полученный ответ в формат Blob с помощью метода `blob()`. Далее мы создаем ссылку на Blob с помощью `URL.createObjectURL()` и создаем элемент ``, чтобы пользователь мог скачать файл. После этого мы кликаем по элементу ``, чтобы начать скачивание файла, и освобождаем URL с помощью `URL.revokeObjectURL()`, чтобы избежать утечек памяти.

    Вы можете добавить этот код на вашу страницу и изменить ссылку на файл xlsx на нужную вам. После нажатия на кнопку "Скачать файл", пользователь сможет загрузить файл xlsx и сохранить его в своем хранилище.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно