Zapisz elemet docelowy jako

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Belzebub
Posty: 1
Rejestracja: pn kwie 19, 2010 5:54 pm

Zapisz elemet docelowy jako

Post autor: Belzebub »

Witam

Jestem początkującym webmasterem (o ile tak mnie można nazwać :) ). Tworzę właśnie dla siostry stronę i muszę wrzucić tam plik w pdf'ie, który zajmuje 130MB. Ponieważ plik jest on dość spory (130mb) to chciałbym żeby pdf nie otwierał się w nowym oknie tylko od razu wyskakiwała opcja zapisz element docelowy jako. Czytałem że można to zrobić przy użyciu skryptu w PHP:

Kod: Zaznacz cały

<?php
if($_GET['plik']){
$file = $_GET['plik'];
header("Cache-control: private");
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($file));
header("Content-Disposition: attachment; filename=".basename($file));
header("Connection: Close");
readfile($file);
}
?>
Kod działa dla tylko dla mniejszych plików. Natomiast w przypadku wcześniej wspomnianego pdf'a (130MB), otwiera się okienko zapisz jako, jednak plik nie ściąga się (ściąga się tylko sama nazwa pliku np. xxx.pdf bez zawartości). Wydaje mi się że problem tkwi w kodzie skryptu, ponieważ otwierając pdf'a w nowym oknie otwiera się bez problemu.

Może ktoś z Was wie jak zmodyfikować skrypt aby działał poprawnie?

Będę wdzięczny za pomoc.
ODPOWIEDZ