HTML: Как скачать PDF-файл по ссылке - PullRequest
1 голос
/ 02 марта 2020

Я пытаюсь загрузить документ .pdf из внешней базы данных Содержательный , используя ссылку HTML в пользовательском интерфейсе, как показано ниже.

Проблема У меня есть то, что каждый раз, когда я нажимаю ссылку «ЗАМЕЧАНИЯ ПО ПРОЕКТУ», я перенаправляюсь на страницу с ошибкой. Почему моя ссылка не загружает файл pdf?

map

Ниже кода, который я использую:

<code>import Client from '../Contentful';


class Sidebar extends React.Component {
state = {
    ships: []
};

async componentDidMount() {
    let response = await Client.getEntries({
        content_type: 'cards'
    });
    const ships = response.items.map((item) => {
        const {
            name,
            slug,
            projectnotes
        } = item.fields;
        return {
            name,
            slug,
            projectnotes
        };
    });

    this.setState({
        ships
    });
}


getFilteredShips = () => {
    // operations .......
};

render() {
    return (
        <div className="map-sidebar">
            {this.props.activeShipTypes}
            <pre>
                {this.getFilteredShips().map((ship) => {
                    console.log(ship);

                    return (
                        <Card className="mb-2">
                            <CardImg />
                            <CardBody>
                                <CardTitle>
                                    <h3 className="thick">{ship.name}</h3>
                                </CardTitle>
                                <Row style={{ marginTop: '20px' }}>
                                    <div className="buttoncontainer">
                                        <div className="btn btn-cards">
                                            <a className="buttonLink" href={ship.projectnotes}>
                                                Project Notes
                                            </a>
                                        </div>
                                        <div className="btn btn-cards">
                                            <a className="buttonLink" href={ship.distancesandcontours}>
                                                Dist and Contours
                                            </a>
                                        </div>
                                    </div>
                                </Row>

                            </CardBody>
                        </Card>
                    );
                })}
            
); }} экспортировать боковую панель по умолчанию;

Я могу подтвердить, что правильно читаю название поля:

field

Может быть, я неправильно назначаю путь?

РЕДАКТИРОВАТЬ 2

Я тоже попробовал следующее, но загрузка не произошла:

<a className="buttonLink" download={ship.projectnotes} href={ship.projectnotes}>Project Notes</a>

Что я сделал до сих пор:

1) Мне удалось реализовать ссылку на документ, но после того, как я начал использовать внешний контейнер Contentful, pdf не загружается, в отличие от того, на что я надеялся. Возможно, есть ошибка в том, как я назначаю путь?

2) После более подробного изучения этой проблемы я наткнулся на этот пост, который был полезен. Кажется, что в этом посте проблема может быть в загрузке?

Я немного запутался. Спасибо за указание в правильном направлении.

Ответы [ 2 ]

1 голос
/ 02 марта 2020

Вы можете попробовать добавить атрибут download к a, он вполне хорошо поддерживается .

0 голосов
/ 02 марта 2020

Здравствуйте

Уважаемый, Вы пытаетесь использовать это

<a className="buttonLink" href={yourDownloadFileLink} dowload>
     Click to download
</a>
...