Pobieranie pliku przez PHP

Pobieranie pliku przez PHP
M0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Cześć wszystkim, niestety chat GTP zawiódł i podrzemuje ludzkiej pomocy.

Na stone www.strona-a.pl mam link do pliku www.strona-b.pl/test.pdf

Kopiuj
<a href="www.strona-b.pl/test.pdf" target="_self">test</a>

Gdy użytkownik pierwszy raz chce poprać ten plik to go nie ma fizyczne na serwerze, tylko uruchamia się strona 404 z kodem PHP, który dopiero z jeszcze innej strony pobiera plik i zapisuje go na serwerze pod nazwą test.pdf.

W dużym skrócie wygląda to tak:

Kopiuj
file_put_contents($filePath, $data);
header("Refresh:0");
exit();

I tu pojawia się moje pytanie. Gdy plik fizycznie jest na serwerze to strona nie uruchamia się tylko rozpoczyna pobieranie plików.
Gdy pliku nie ma to uruchamia się biała strona się po czyn rozpoczyna pobranie pliku.

Czy znacie jakieś magiczne sposoby, aby objeść to zachowanie strony za pierwszą próbą poprania pliku?

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
0
Kopiuj
<?php
if (!file_exists($filePath)) {
  file_put_contents($filePath, $data);
}

echo file_get_contents($filePath);

Mógłbyś też dodać odpowiednie nagłówki:

Kopiuj
$size = fileSize($filePath);

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=download.png'); 
header('Content-Length: ' . $size);

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.