Oto mój problem. Próbuję wywołać stronę: foo.php? DocID = bar i zwróć plik PDF na ekran, który jest przechowywany jako BLOB w DB.IE (HTTPS): generowanie pliku pdf z pliku php nie działa
Oto fragment mojego kodu, które faktycznie zwraca PDF:
$docID = isset($_REQUEST['docID']) ? $_REQUEST['docID'] : null;
if ($docID == null){
die("Document ID was not given.");
}
$results = getDocumentResults($docID);
if (verifyUser($user, $results['ProductId'])){
header('Content-type: application/pdf');
// this is the BLOB data from the results.
print $results[1];
}
else{
die('You are not allowed to view this document.');
}
To działa perfekcyjnie w Firefoksie.
Jednak w IE nic nie pokazuje. Jeśli jestem na innej stronie (np. Google.com) i wpisuję adres URL, aby przejść do tej strony, będzie to oznaczało, że to zrobione, ale nadal będę mieć stronę google.com na moim ekranie.
Sprawdziłem nagłówki odpowiedzi obu programów: firefox i IE. Są identyczne.
Czy ktoś ma jakieś sugestie? Potrzebujesz więcej informacji?
EDIT: Jeśli to pomaga w ogóle, oto nagłówek odpowiedzi i pierwsza linia treści:
HTTP/1.1 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 349930
Content-Type: application/pdf
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: PHP/5.1.2
Set-Cookie: PHPSESSID=cql3n3oc13crv3r46h2q04dvq4; path=/; domain=.example.com
Content-Disposition: inline; filename='downloadedFile.pdf'
X-Powered-By: ASP.NET
Date: Tue, 21 Apr 2009 16:35:59 GMT
%PDF-1.4
EDIT: Ponadto, strona, która wyciąga plik pdf faktycznie korzysta z HTTPS zamiast HTTP.
Dzięki z góry,
~ Zack
zorientowali się problem. Zobacz moje wyjaśnienie poniżej: –