@Nick-Fisher

Как сделать линк на скачивание файла в react?

Добрый день. Есть вполне тривиальная задача, которую нативным js'ом решали вот так
const download = filename, text) => {
    let element = document.createElement('a');
    element.setAttribute('href', 'somelink' + text);
    element.setAttribute('download', filename);
    document.body.appendChild(element);
    element.click();
    document.body.removeChild(element);
  }

Встала задача починить на IE11(речь не про это) и я узнал, что атрибут download не очень дружит.
Решил переписать на реакте и все перестало работать даже в хроме.
Что я делаю не так?
const download = (filename, text) => {
  return (
     <a href={'somelink' + text} download={filename} />
  )


Я пробовал прописывать пути без ссылки напрямую - не помогает
  • Вопрос задан
  • 4537 просмотров
Пригласить эксперта
Ответы на вопрос 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Касательно вашего первого способа
Кроме download всегда добавляйте target="_blank" + отдача с сервера с заголовком
Content-Disposition: attachment; filename="filename.jpg"

https://developer.mozilla.org/ru/docs/Web/HTTP/%D0...
Вместо element.click(); создавайте событие через createEvent ибо просто .click() не особо кроссбраузерно
https://stackoverflow.com/a/902838

Касательно второго, вообще бред. Просто используйте первый.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы