webForumDet fria alternativet

Download

PHP

7 svar · 374 visningar · startad av bgust

Medlem sedan mars 2000136 inlägg
Frågan#1

Jag använder följande kod för att ladda hem filer:

<?php
	set_time_limit(30);
	header("Content-disposition: filename=$fileToDownload");
	header("Content-type: application/octetstream");
	header("Pragma: no-cache");
	header("Expires: 0");
	readfile("$fileToDownload");
	exit;
?>

Det funkar utmärkt till alla filer utom bilder. Använder man det på en fil med ändelsen jpg eller gif stån den bara och tuggar och tuggar och tuggar och inget händer. Ändrar jag ändelsen på filen går det bra.
Var ligger felet? I min kod eller i konfigurationen av servern?

Medlem sedan mars 2000475 inlägg
#2

testa:

header("Content-type: application/force-download");

Medlem sedan mars 2000136 inlägg
#3

Tyvärr. Samma resultat. Har du någon sida att rekommendera gällande information om argumenten till header?

Medlem sedan mars 2000475 inlägg
#4

https://www.php.net

sök på header

Medlem sedan mars 2000475 inlägg
#5

jag använder mig av följande kod (vet ej hur den är med bilder)


<?php

include("../includes/sql.inc");

$id = $_GET[id];

	if(!is_numeric($id)){
		die("Invalid id specified");
	}//end if...

$resultat = get_download_blob($id);

//if(mysql_num_rows($resultat) == 1){
if($data = mysql_fetch_assoc($resultat)){

	if(stristr('mac', $_SERVER['HTTP_USER_AGENT'])) {
		$type = 'application/download';
	}
	else{
		$type = 'application/octet-stream';
	}

		header("Cache-control: private"); // another fix for IE
		header("Content-Type: {$type}");
		header("Content-Disposition: attachment; filename=\"{$data['file_name']}\"");
		header("Content-Length: {$data['file_size']}");
		header("Content-Transfer-Encoding: binary");

		$fileOutput = $data['file'];
		echo $fileOutput;
		unset($fileOutput);
		return TRUE;

	        }
	                else {
	                    return FALSE;
	                    echo "Record doesn't exist.";
	                }

	?>
Medlem sedan juli 20011 129 inlägg
#6

Hmmm...
Nu spammar jag lite här.
Kan det inte ha att göra med att explorer alltid försöker öppna bilder och för att spara ner så måste man välja
"Spara bild som..."
istället för
"Spara mål som..."

bara höftar lite på anledningen, jag har ingen aning om hur man löser det. Du får väl ändra till "image/jpeg" istället på Contenttypen för att visa den istället... ähh, jag vet inte... som sagt bara spammar.

Medlem sedan mars 2000136 inlägg
#7
        header("Content-Disposition: attachment; filename=\"{$data['file_name']}\"");

gjorde susen. Verkar funka. Ska testa nogare på måndag. Tack.

Medlem sedan aug. 2001153 inlägg
#8

http://www.php.net/manual/en/function.fpassthru.php

Där du läsa lite kommentarer om du har lite o göra :)

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)