Как я могу использовать google-cloud-storage, чтобы пользователи publi c могли загрузить форму травмы? - PullRequest
0 голосов
/ 22 апреля 2020

Когда кнопка нажата, она не вызывает загрузку, когда я запускаю ее через localhost. Я не уверен почему.

Мне нужна кнопка в аспекте реагирования HTML, чтобы вызвать загрузку файла docx «форма травмы»

import React from 'response'; импорт firebase из «firebase»;

const Documents = () =>{


    var storage = firebase.storage();
    var docsRef = storage.ref('Documents/Injury form.docx');

    const Download = () => { 

        docsRef.getDownloadURL().then(function(url) {
        }).catch(function(error) {
            switch (error.code) {
                case 'storage/object-not-found':
                  // File doesn't exist
                  break;

                case 'storage/unauthorized':
                  // User doesn't have permission to access the object
                  break;

                case 'storage/canceled':
                  // User canceled the upload
                  break;


                case 'storage/unknown':
                  // Unknown error occurred, inspect the server response
                  break;
              }
            });

            }
return (
    <div>
        <button onClick={Download}>yoooo</button>d        
    </div>
)
}

export default Documents

Я также настроил корзину облачного хранилища для перекрестного доступа (CORS). как указано здесь: https://firebase.google.com/docs/storage/web/download-files#cors_configuration

1 Ответ

1 голос
/ 22 апреля 2020

Функция не активирует загрузку. Создает ссылку на URL загрузки.

вам нужно поместить переменную в функцию, чтобы она равнялась URL, который передается через нее. В этом случае это делается через ловушку useState ().

 const [download, setDownload] = useState("blank");

        var storage = firebase.storage();
        var docsRef = storage.ref('Documents/Injury form.docx');

    docsRef.getDownloadURL().then(function(url) {
        setDownload(
            url
        )

    })

Затем передайте это через

<a href={download}>the link to download it

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

<a href="<your URL>"> Button </a> 

. Это создаст ссылку или кнопку, которая активирует загрузку.

в этом случае, позволяя пользователям загрузить форму травмы для веб-сайта phisio.

...