Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Ustalenie nazwy pobieranego pliku
ametyst1980
post 29.12.2016, 18:16:31
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.08.2016

Ostrzeżenie: (0%)
-----


Pobieram sobie plik w taki sposób:

  1. $plik='http://pobierzd32.pl/plik/4d048d95c8d9565d6c674c083cca2f49f1fe2cc9deeaaf11c682b1fa5292f1eabb9d8e17d78d4939
    d7ac7cdf066c266124a2298287bcb5809997ece5d4c08b9c/Dick+Philip+K.+-+Mo%C5%BCemy+ci%C4%99+zbudowa%C4%87+%281972%29.mobi'
    ;
  2.  
  3. file_put_contents("nazwa_pliku.mobi", fopen($plik, 'r'));


Wszystko działa, ale muszę podać jakąś nawę pliku, żeby się to zapisało.

Gdy wklejam link do przeglądarki ona automatycznie ustala odpowiednią nazwę pliku.
Jak uzyskać taki efekt i automatycznie ustalać nazwę pobieranego pliku ?

Trzeba nagłówki analizować, czy jak to ogarnąć ?

Ten post edytował ametyst1980 29.12.2016, 18:17:06
Go to the top of the page
+Quote Post
nospor
post 29.12.2016, 22:36:01
Post #2





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




W temacie piszesz o pobieraniu, tu pokazujesz kod do zapisywania... sie zdecyduj...

I tak, jesli udostepnisz jakis plik userom i chcesz nadac mu nazwe pod jaka go sciagna, to musisz pobawic sie naglowkami


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ametyst1980
post 30.12.2016, 14:02:54
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.08.2016

Ostrzeżenie: (0%)
-----


No chyba pobranie pliku (download) to zapisanie pliku na dysk/serwer ?

Może ktoś ma jakiś działający skrypcik, który zapisze mi automatycznie w danym folderze plik/wiele plików
z automatycznym ustawieniem odpowiedniej nazwy ?
Go to the top of the page
+Quote Post
nospor
post 30.12.2016, 14:04:01
Post #4





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




Cytat
No chyba pobranie pliku (download) to zapisanie pliku na dysk/serwer ?

Gdy ktos wrzuca plik na serwer to UPLOAD
Gdy ktos pobiera plik z serwera to DOWNLOAD


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ametyst1980
post 30.12.2016, 14:10:24
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.08.2016

Ostrzeżenie: (0%)
-----


W przykładzie pobieram plik z zewnętrznego serwera i chce go zapisać obojętnie gdzie (może być na moim serwerze ->wtedy wg Ciebie byłby to downloado-upload, może być lokalnie na dysku),
zależnie skąd odpalam skrypt, czy z serwera czy z komputera. Nie ma to znaczenia. Ważne, żeby za pomocą php pobrać nazwę pliku, tak jakbym wkleił ten link do przeglądarki (ona automatycznie ustala odpowiednią nazwę).

Szukałem pomocy na stackoverflow, ale na tą chwilę nie znalazłem.
Go to the top of the page
+Quote Post
nospor
post 30.12.2016, 14:13:05
Post #6





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




O widzisz, zle ciebie zrozumialem.

W podanym przykladzie nazwe pliku masz w url. Czemu nie pobierzesz jej stamtad?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ametyst1980
post 30.12.2016, 14:18:15
Post #7





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.08.2016

Ostrzeżenie: (0%)
-----


No niby jest, trochę zakodowana, ale idzie to pobrać, lecz czasem bywa tak, że link ma nazwę powiedzmy "asojdioasu890czxucoijwklmq3" a przeglądarka
i tak ustala prawidłową nazwę w jakiś sposób.

Tutaj jest coś na ten temat:
http://stackoverflow.com/questions/5195867...to-get-filename

Piszą o Content-Disposition, ale nie za bardzo wiem jak to pobrać z nagłówków ?
Go to the top of the page
+Quote Post
nospor
post 30.12.2016, 18:13:36
Post #8





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




Uzyj curl zamiast fopen i dobierzesz sie do pliku razem z naglowkami
http://php.net/manual/en/book.curl.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ametyst1980
post 30.12.2016, 20:51:39
Post #9





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.08.2016

Ostrzeżenie: (0%)
-----


Tutaj znalazłem podpowiedź, ale nie do końca wiem jak jej urzyć:
http://stackoverflow.com/questions/6881034...lowing-location

Mam ten kod:
  1. url="http://www.vim.org/scripts/download_script.php?src_id=10872"
  2. filename=$(curl -sI $url | grep -o -E 'filename=.*$' | sed -e 's/filename=//')
  3. curl -o $filename -L $url


i najprostszy kod połączenia cURL:

  1. $ch = curl_init();
  2. curl_setopt($ch, CURLOPT_URL, $url);
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  4. $output = curl_exec($ch);
  5. curl_close($ch);


W jaki sposób wstawić ten kod w curl, żeby to działało, bo jak tak robię, to wywala błędy:

  1. $ch = curl_init();
  2. curl_setopt($ch, CURLOPT_URL, $url);
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  4.  
  5. $filename=$(curl -sI $url | grep -o -E 'filename=.*$' | sed -e 's/filename=//')
  6. curl -o $filename -L $url
  7.  
  8. $output = curl_exec($ch);
  9. curl_close($ch);

questionmark.gif

Ten post edytował ametyst1980 30.12.2016, 20:53:56
Go to the top of the page
+Quote Post
nospor
post 30.12.2016, 21:28:58
Post #10





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




Mieszasz kod konsolowy z kodem php to nic dziwnego ze nie masz bledy po stronie php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ametyst1980
post 30.12.2016, 21:38:29
Post #11





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.08.2016

Ostrzeżenie: (0%)
-----


No właśnie nie wiem o co chodzi z tym kodem, jestem amatorem w tej dziedzinie, jednak chciałbym jakoś w końcu pobrać tą nazwę, bo siedzę
nad tym już dość długo.

Jak mam użyć tego 'kodu konsolowego' w PHP questionmark.gif
Go to the top of the page
+Quote Post
nospor
post 30.12.2016, 21:44:49
Post #12





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




Cytat
Jak mam użyć tego 'kodu konsolowego' w PHP

Masz go w ogole nie uzywac. Po grzyba ci kod konsolowy w php?

curl w php zwraca ci naglowki. Pobierz je i wez z nich co cie interesuje czyli nazwe pliku


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ametyst1980
post 30.12.2016, 21:47:35
Post #13





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.08.2016

Ostrzeżenie: (0%)
-----


No właśnie cały czas próbuje to pobrać, ale nie wiem jak 'pobrać nagłówki i wziąć z nich to co mi potrzebne'.
Dla Ciebie to oczywiste, ale dla mnie niestety nie...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.06.2024 - 20:47