Ich arbeite an einem Projekt, das Datei-Uploads hat. Diese Dateien erhalten einen zufälligen Namen und befinden sich außerhalb des Web-Verzeichnisses.Looping, eine Reihe von Headern und ... nichts passiert
Ich habe dann ein Skript, das dieses Bild basierend auf Parametern in der URL abgerufen, die absolut gut funktioniert.
Allerdings habe ich ein Array der Header, die ich an den Browser übergeben wollte und dann durch diese mit einem foreach
Loop gemacht und sie schien nichts einzustellen. Aber wenn ich sie manuell mit der header
Funktion einstelle, funktionieren sie! Bizarr!
Jetzt habe ich nichts dagegen, die header
Funktion zu verwenden, anstatt sie durchzuschleifen, aber gibt es einen bestimmten Grund, dass das nicht funktioniert?
Ich benutze auch die obige Methode, um alle meine Header in einem Array zu speichern und sie dann bei der Bereitstellung des Inhalts an den Browser zu verarbeiten, aber ich kann nicht sicher sagen, ob sie tatsächlich übergeben werden, das oben genannte Problem zu sehen!
Snippet meiner Code:
// Expiry date in seconds, in this instance a year
$expiry_date= (60 * 60 * 24 * 365);
// Our headers
$img_headers= array(
'Content-Type : ' . $mime,
'Cache-Control: no-cache, must-revalidate',
//'Cache-control: max-age=' . $expiry_date,
'Expires:' . gmdate(DATE_RFC1123, time() + $expiry_date),
'Pragma: ',
'Last-Modified: ' . gmdate(gmdate(DATE_RFC1123), filemtime($image_path)),
'Content-Length: ' . (string) filesize($image_path),
'Content-Disposition: inline; filename="' . $image_name . '"'
);
/*header('Content-Type: ' . $mime, TRUE);
header('Cache-Control: no-cache, must-revalidate', TRUE);
header('Expires: ' . gmdate(DATE_RFC1123, time() + $expiry_date));
header('Pragma: ', TRUE);
header('Last-Modified: ' . gmdate(gmdate(DATE_RFC1123), filemtime($image_path)), TRUE);
header('Content-Length: ' . (string) filesize($image_path), TRUE);*/
// Loop through and set up our headers!
foreach($img_headers as $new_header)
{
header($new_header, TRUE);
}
// Read our image and end the rest of the file execution
return die(readfile($image_path));
Alles, was dort die deplatziert aussieht?
Vielen Dank im Voraus!
Scrap, dass ich ein bisschen ein Kopf von mir selbst mit diesem Kommentar war! Ich kann nicht glauben, dass ich einen so einfachen Fehler verpasst habe! * seufz * Vielen Dank dafür! Ich fühle mich jetzt wirklich dumm! Heh – Azirius