Situācja vienkārša. Ir fails uz servera, kuram nevar padot tiešu ceļu. Tāpēc iespēja pie faila ir tikt ar php failu. Piemēram.
get_file.php?id=xxx
Kur get_file.php ir fails kas apstrādā pieprasījumu un nodod content, bet id ir faila identifikators.
aptuvenais get_file.php koda saturs
<?
$file = 'cels_uz_failu'; // atlasīts no db
$file_name = 'faila_nosaukums'; // atlasīts no db
$content = 'contenttype'; // atlasīts no db
$size=filesize($file);
if ($size == 0)
{
echo 'Fails nav atrasts';
exit;
}
header('Content-type: '.$content);
header('Content-Disposition: attachment; filename='.$file_name);
header('Content-Length: '.$size);
$chunksize = 1*(1024*1024);
$fp = @fopen($ffile,"rb");
while (!feof($fp))
{
$buffer = fread($fp, $chunksize);
print $buffer;
}
fclose($fp);
?>
Ir tā, ka ja paņem save failu tad ir viss kārtībā, bet ja ņem uzreiz Open, tad pēc tam kad IE failu ir novilcis savos Temp failos un mēģina atvērt izmet paziņojumu, ka fails nav atrasts. Ar Firefox nekādu problēmu nav. Ir kādas idejas? Varbūt kādi citādi headeri jāpadod?
IE ar kuru gļuko ir: 6.0.2900.2180.xpsp_sp2_gdr.050301-1519
Kur vispār meklēt problēmu? Skriptā? Servera conf.? Pārlūkā? (zinu ka vieglāk patiekt DONT USE IE, bet šoreiz tas nebūs risinājums)