• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

jak ściągnąć plik tekstowy pochodzacy z API.

VPS Starter Arubacloud
0 głosów
370 wizyt
pytanie zadane 18 lipca 2019 w JavaScript przez aniaska4 Obywatel (1,010 p.)

Mam takie pytanie. Zrobiłam pytanie do api i w odpowiedzi dostałam data ze ścieżkami do plików txt. Chciałabym je podpiąć pod odpowiednie miejsca na stronie i móc je download. Ale nie do końca rozumiem jak zbudować link do ściągnięcia. Ten przykładowy z api to 

"document_content": "\/files\/documents\/12112-90eafad13f8c22114269a52d073d2401\/test-4506010.docx"

Wiec to nie jest odpowiednia ścieżka do pobrania. Nie moge tez dodac początku mojej strony bo tak, to nie działa. próbowałam z obiektem new Blob. czy to dobry kierunek?

downLoadItem(url) {
      let blob = new Blob([this.document], { type: `text/txt` });
      console.log(blob.size);
      var link = window.document.createElement("a");
      link.href = window.URL.createObjectURL(blob);
      link.download = "text.txt";
      link.click();
    }

 

1 odpowiedź

+1 głos
odpowiedź 18 lipca 2019 przez Kamil Łydka Stary wyjadacz (13,600 p.)
wybrane 18 lipca 2019 przez aniaska4
 
Najlepsza

Jeśli zrobisz tak:

<a href="ADRES_DO_PLIKU"> pobierz </a>

To przeglądarka automatycznie pobierze Ci plik. 

A jeszcze ładniej i lepiej będzie jeśli dorzucisz odpowiedni atrybut HTML 5

<a href="ADRES_DO_PLIKU" download> pobierz </a>

Więc ogólnie to co musisz zrobić, to po prostu stworzyć odpowiednie znaczniki. Tylko raczej do tej wartości do której dostajesz będziesz musiała dorzucić odpowiedni adres - skleić stringi. 

komentarz 18 lipca 2019 przez aniaska4 Obywatel (1,010 p.)
no własnie chodzi mi o ten konkretny adres. jeżeli ten dokument gdzieś widnieje w bazie i ja z api pobieram jego link(który nigdzie mnie w chwili obecnej nie prowadzi), to nie wiem jaki adres mam mu dokleić, aby go ściągnąć. czy to są jakieś specjalne wytyczne? No bo przecież jak ja ściągam jakiś dokument w pdf z mojego jakiegoś konta, to ten dokument tez jest gdzieś trzymany. Czy wystarczy adres serwera?
komentarz 18 lipca 2019 przez Kamil Łydka Stary wyjadacz (13,600 p.)

Przypuszczam, że

URL + document_content

gdzie URL to adres twojego API lub samej domeny. Nie masz żadnej dokumentacji? Skąd to API?

komentarz 18 lipca 2019 przez aniaska4 Obywatel (1,010 p.)
Tak, mam adres do api. Bardziej chodziło mi o takie logiczne wyjaśnienie jak to działa. Jeżeli ten dokument ma taką ścieżkę i pobieram go z api, to jego faktyczny adres to własnie ten z api + ta ścieżka podana w request tak?
komentarz 18 lipca 2019 przez Kamil Łydka Stary wyjadacz (13,600 p.)
edycja 18 lipca 2019 przez Kamil Łydka

Nie wiem dokładnie co zwraca to API i nie widziałem dokumentacji, więc tylko się domyślam. Ale ogólnie rzecz biorąc, pisząc możliwie prosto, to jeśli dany plik znajduje się na serwerze, to właśnie tak możesz się do niego dostać (o ile nie jest zablokowany dostęp), po prostu wskazujesz gdzie on się znajduje: domena + katalogi + nazwa danego pliku, czyli np. mojastrona.pl/files/jakis_podkatalog/informacje.pdf.  (lub zamiast domeny po prostu adres ip, bo domena to nic innego jak nazwa tłumaczona na odpowiedni adres ip, więcej czytaj pod hasłem DNS). Zauważ, że jeśli masz jakąś stronę, to jego pliki również znajdują się na serwerze. Strona internetowa to nic innego niż pobrany plik index.html który w odpowiedni sposób wyświetla przeglądarka (oczywiście przy okazji z reguły dochodzą inne pliki, a /podstrona nie oznacza zawsze że dana podstrona jest folderem, a może po prostu w taki sposób tworzymy nasz track router strony, ale zakładam że w tym przypadku, w przypadku plików, dostajesz właśnie adres fizycznego katalogu).

W ramach testu wcale nie musisz kombinować i sprawdzać tego JS, wystarczy że wrzucisz odpowiedni adres w przeglądarkę.

 

, to jego faktyczny adres to własnie ten z api + ta ścieżka podana w request tak?

To wszystko zależy, równie dobrze pliki mogą znajdować się na innym serwerze (na przykład na którym są trzymane właśnie pliki fizyczne), a Ty dostajesz odpowiednią końcówkę. Może być wiele możliwości. Po prostu API najprawdopodobniej zwraca Ci odpowiednią końcówkę, a Ty musisz podać początek, czyli adres odpowiedniego serwera. 

1
komentarz 18 lipca 2019 przez aniaska4 Obywatel (1,010 p.)
Super, teraz wszystko już jest jasne. Baaaaaardzo Ci dziękuję za tak obszerne wyjaśnienie :)
komentarz 18 lipca 2019 przez Kamil Łydka Stary wyjadacz (13,600 p.)
Nie ma problemu, powodzenia. :)

Podobne pytania

0 głosów
2 odpowiedzi 130 wizyt
pytanie zadane 23 września 2020 w HTML i CSS przez nielot Obywatel (1,270 p.)
0 głosów
1 odpowiedź 219 wizyt
0 głosów
1 odpowiedź 285 wizyt

93,024 zapytań

141,986 odpowiedzi

321,290 komentarzy

62,371 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...