• 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.

Object Storage Arubacloud
0 głosów
327 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 112 wizyt
pytanie zadane 23 września 2020 w HTML i CSS przez nielot Obywatel (1,270 p.)
0 głosów
1 odpowiedź 187 wizyt
0 głosów
1 odpowiedź 260 wizyt

92,555 zapytań

141,403 odpowiedzi

319,558 komentarzy

61,940 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...