Использование тега привязки для загрузки файла в React - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь использовать якорный тег для загрузки файла, который я сохранил в моей CMS Prismi c .io. Однако всякий раз, когда я нажимаю на ссылку, он открывает файл, а не загружает его. Я не уверен, что я делаю не так, вот мой код:

note: item.download.url возвращает ссылку, размещенную на aws: https://wroomdev.s3.amazonaws.com/tutoblanktemplate%2F97109f41-140e-4dc9-a2c8-96fb10f14051_star.gif?auto=compress, формат

<a href={`${item.download.url}`}
   download
>
   <FaDownload
     style={{
       fontSize: "32px",
       marginBottom: "10px",
     }}
   />
</a>

Ответы [ 2 ]

1 голос
/ 10 января 2020

Проблема может быть вызвана политикой same-origin .

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

Загрузка контролируется тем же источником.

загрузка работает только для URL-адресов того же происхождения, или blob: and data: схемы

Чтобы пройти через это, у вас есть два варианта: 1. Получить доступ к файлу с одним и тем же источником. 2. Используйте Blob.

1 голос
/ 10 января 2020

Я думаю, вам не нужно реагировать на это, поскольку вы можете запустить загрузку с атрибутом HTML5 download. Как то так:

<a href={`${item.download.url}`} download="the_file_name">
    <FaDownload
     style={{
       fontSize: "32px",
       marginBottom: "10px",
     }}
   />
   download
</a>
...