Skocz do zawartości

Pobieranie pliku z rozszerzeniem php


madel

Rekomendowane odpowiedzi

Witam

Problem jest nastepujący:

Chce żeby użytkownik sobie pobrał poprzez link plik dajmy na to pobierz_mnie.php, aby mógł sobie go wrzucić na swój serwer.

No i pojawia się problem, bo próby pobrania zwrócą tylko przeparsowany wynik działania skryptu php pliku pobierz_mnie.php w wersji htm a nie cały plik php.

Any idea?

Prawdziwy inżynier to taki, który unika drobnych błędów na drodze do wielkiej katastrofy.

Odnośnik do komentarza
Udostępnij na innych stronach

<?
//export.php
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=do_pobrania.php');
readfile('do_pobrania.php');
?>

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
Tak czy inaczej dzięki, szukam dalej.
Kto szuka ten czasami tez nie znajdzie ... :P

Więc Proponuję Ci posłuchać rady Maximus-Rex

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Już jest ok, Mion zwracam honor i przepraszam, działa pod wszystkim. Błąd który popełniałem to wstawianie ścieżki w drugiej linijce zamiast samej nazwy pliku, przykład dla zainteresowanych:

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename="partnerzy.php"');

readfile('files/madel/partnerzy.php');

Jak widać w linijce drugiej wstawiamy tylko nazwę pliku, w linijce 3 wstawiamy ścieżkę.

Prawdziwy inżynier to taki, który unika drobnych błędów na drodze do wielkiej katastrofy.

Odnośnik do komentarza
Udostępnij na innych stronach

Jak widać w linijce drugiej wstawiamy tylko nazwę pliku, w linijce 3 wstawiamy ścieżkę.
NO to chyba jest oczywiste :P że jeśli plik wczytywany funkcja readfile leży w innym katalogu niż skrypt korzystający z tej funkcji musimy podać do niego ścieżkę

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 rok później...

Właśnie coś takiego jest mi potrzebne, tylko chciałbym zastosować taki skrypt do więcej niż jednego pliku. Mam problem z PDFami które też się otwierają zamiast ściągać na dysk.

Próbowałem rozwiązać to przez przekazywanie nazwy pliku w zmiennej za pomocą $_GET'a ale nie potrafię sobie z tym poradzić. Pomożecie:)?

Odnośnik do komentarza
Udostępnij na innych stronach

1,5 roku milczenia i post :D Miło

PDF Zapisz Jako:

if(isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'MSIE'))
			header('Content-Type: application/force-download');
		else
			header('Content-Type: application/octet-stream');
		header('Content-Length: '.strlen($this->buffer));
		header('Content-disposition: attachment; filename="'.$name.'"');
		header('Content-Disposition: attachment; filename="'.$name.'"');

PDF Wyświetl:

header('Content-Type: application/pdf');
							header('Content-Length: '.strlen($this->buffer));
			header('Content-disposition: inline; filename="'.$name.'"');

Odnośnik do komentarza
Udostępnij na innych stronach

@mkr, podepnę się pod temat skoro już go odkopali :D

Mam takie pytanie, chciałbym zrobić coś takiego, pobieranie pliku w locie, tz. nie z serwera tylko wygenerowanego,

np. robię, np. prosty zrzut z bazy danych do pliku .txt

Nie wiem za bardzo jak to ugryźć, więc może jakieś naprowadzenie?

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Robisz dokładnie tak samo, czyli najpierw wysyłasz odpowiedni nagłówek, jeśli nie znasz wielkości generowanych danych to nie podajesz, przeglądarka sobie z tym jakoś poradzi. Następnie zamiast dajesz jakąś swoją procedurę która generuje dane i wypluwa je na wyjście( echo, print itp. ) i to wszystko.

Odnośnik do komentarza
Udostępnij na innych stronach

Przekazuję nazwę pliku w linku np get.php?id=plik.pdf gdzie zawartość get.php wygląda tak:

$name=$_GET["id"];

if(isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'MSIE'))
			header('Content-Type: application/force-download');
		else
			header('Content-Type: application/octet-stream');
		header('Content-Length: '.strlen($this->buffer));
		header('Content-disposition: attachment; filename="'.$name.'"');
		header('Content-Disposition: attachment; filename="'.$name.'"');

Niestety nie działa - pewnie coś źle robię. Proszę o pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności