Adobe leest niet alle bestanden online

Status
Niet open voor verdere reacties.

ProCx

Gebruiker
Lid geworden
28 okt 2011
Berichten
27
Hallo allemaal,

Ik heb een scriptje die eerst mappen uitleest en vervolgens de pdf online weergeeft. Alleen is het probleem dat een deel het wel doet en een deel doet het niet. Ik krijg de melding: Het bestand is beschadigd en kan niet worden gerepareerd. Wanneer ik een echo doe van de filename en via Uitvoeren.. dit plak doet het bestand het wel. Het probleem is dat de oude bestanden (voor 29-09-2008) het wel doen maar de latere niet.

dit is de code:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Stienser Omroeper</title>
</head>

<body>

<?php
$file = 'E:/Omrop/'.$_GET['y'].'/'.$_GET['f'];
$filename = $_GET['f'];

header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);
?>
</body>
</html>

De $_GET bevat een y voor het jaar (mapstructuur) en een f voor de filenaam.

Iemand een idee?
 
Zitten er misschien spaties in de filename? Zijn de oude files gemaakt op een andere manier?
 
Zitten er misschien spaties in de filename? Zijn de oude files gemaakt op een andere manier?

Ik heb nu ook in andere jaren (2011 ook) pdf gevonden die werkt. Als ik de letterlijke link die in readfile komt kopieer en plak in Uitvoeren, doet elke link het. De link klopt dus wel en de manier van opslaan heb ik geen idee van.
 
Dat is geen garantie. Er gelden andere regels voor headers dan voor het windows bestandssysteem.

Als je de header regels even als commentaar zet en/of je maakt er een octet-stream van, worden alle files dan wel correct gedownload?
 
Als ik ze download via scriptje krijg ik dezelfde melding. Open ik ze gewoon vanaf de harde schijf doen ze het wel..
 
je kunt dit proberen tussen de headers en "readfile"
PHP:
ob_clean();
flush();

Maar het lijkt op een meer algemeen probleem dan alleen pdf.
 
je kunt dit proberen tussen de headers en "readfile"
PHP:
ob_clean();
flush();

Maar het lijkt op een meer algemeen probleem dan alleen pdf.

Ik denk dat ik hier tegen een held praat:D De clean en flush was de fix!

Super bedankt!!
 
In principe is dit alleen nodig als je als "extensie" draait (in windows) en zelfs dan niet altijd. Veel voorbeeld scripts laten het dan ook vaak weg.
 
In principe is dit alleen nodig als je als "extensie" draait (in windows) en zelfs dan niet altijd. Veel voorbeeld scripts laten het dan ook vaak weg.

Ik denk dat het daardoor misging.. Zag het namelijk nergens staan in geen enkel voorbeeld of wat:P
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan