webForumDet fria alternativet

Fil från blob = filen kan inte hittas

PHP

1 svar · 183 visningar · startad av Skarre

Medlem sedan apr. 20012 427 inlägg
Frågan#1

Jag lagrar filer i blob-fält i en MySQL-databas och länkar till filerna enligt följande exempel:

download.php?id=1

download.php hämtar filen med det angivna id:t och skriver ut den filen med hjälp av följande kod:

	$fileid = (int)$_GET['id'];
	
	$res = query("SELECT * FROM fa_files WHERE groupid <> 2 AND fileid = $fileid");

	if (mysql_num_rows($res)) {
		$row = mysql_fetch_assoc($res);
		header('Content-Type: '.$row['filetype']);
		header('Content-length: '.$row['filesize']);

		// Tvingar fram "spara som-dialogen"
		header('Content-Disposition: attachment; filename='.$row['filename']);

		header('Content-Description: PHP Generated Data');
		echo $row['binaryfile'];
	}

Problemet: när jag väljer att öppna en fil direkt, t.ex. en PDF, rapporterar Acrobat Reader att dokumentet inte kunde hittas. Öppnar jag en Word-fil rapporterar Word samma sak. Spara filen på disk kan jag göra, men alltså inte öppna dem direkt.

Vad kan vara orsaken till att Acrobat och Word inte hittar filerna? Har jag missat någon header kanske?

Problemet är att Word och Acrobat Internet Explorer IE hittas inte filerna om man väljer att öppna filerna direkt.

Pröva själv: http://wb0140.web02.ux.tyfon.net/files.php?category=12

Medlem sedan apr. 20012 427 inlägg
#2

Jepp, en missad header var det:

header("Cache-Control: private");
265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)