Cześć.
Kolejna moja zagwostka w PHP. Taki skrypt jak poniżej działa:
<?php
$file = $_GET['file'];
header('Content-type: video/mp4');
header('Content-Disposition: attachment; filename="'.$file.'"');
readfile('http://noc.gts.pl/50mb.gts');
?>
Jednak ma on tę wadę. Docelowo readfile
miałby pobierać plik z Ipli, a jak tak próbuję podając pełen adres, Opera nie pobiera pliku (ma on zero bajtów), a w error logu widzę informację, że funkcja readfile
się nie powiodła. Strona zwróciła kod błędu 400
czyli bad request
. Na próbe dla tego pliku z gts działa ok, dla pobierania na przykład strony głownej wp.pl też. Ale akurat tutaj jest bad request
. A docelowo będzie właśnie pobierany plik typu mp4.
Poza tym readfile
niestety powoduje, że docelowy plik jeżeli już sie to udaje, jest ściągany bez widoczności jego całkowitego rozmiaru. Czy jest zatem jakiś sposób aby móc wstawić najlepiej zachowanie jak po header
i Location
. Ale tak aby wymusić by przeglądarka www, chciała zapisać plik - pokazując pełen jego rozmiar, z żądaną przez nas nazwą pliku. Dlatego, że to co sugeruje na przykład IPLA to, jak wiadomo - długi ciąg znaków cyft od 0
do 9
i liter od a
do z
.
Z góry dziekuję za wszelkie przykłady. Ponieważ googlowałem, ale bez znaleziania dobrego sposobu, ktory by działal jak chcę na docelowym linku.