Archief - PHP: filedownload + subfolders

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Lashknife

Legacy Member
Joe,

heb een downloadscriptje in mekaar geboxed, maar zit met het probleem dat als ik files uit een subfolder wil ophalen (relatief tov waar mijn download.php staat) dat hij in de download-dialog enkel dit teruggeeft:
Code:
File name: download
File type:
From: localhost
terwijl als ik het script in dezelfde folder zet als de downloads, dat het correct werkt:
Code:
File name: 1086078303_2=1.jpg
File type: JPEG Image
From: localhost
Iemand enig idee waarom?
PHP:
require "../inc_sys.php";

//Grab URL of file
if (isset($_GET["id"])) {
	$doc_id = (int)$_GET["id"];
	$query = "select doc_filename from documents where doc_id = " . $doc_id;
	$result = $dbs->open_cursor($query);
	if ($result->fetch()) {
		$doc_filename = stripslashes($result->get_field("doc_filename"));
		if ($doc_filename != "") {
			$downloadsize = filesize($doc_filename);
			header("Content-type: application/x-download");
			header('Content-Disposition: attachment; filename="' . $doc_filename . '"');
			header("Accept-Ranges: bytes");
			header("Content-Length: $downloadsize");
			@readfile($doc_filename);
		} else {
			$_SESSION["doc_error"] = "filename_empty";
			header("Location: ../documents.php");
			exit();
		}
	}
	$result->free();
} else {
	$_SESSION["doc_error"] = "doc_no_exist";
	header("Location: ../documents.php");
	exit();
}

maT'

Legacy Member
Hoe wordt het pad meegegeven waar je te-downloaden bestand zich bevindt? Komt dat mee via je query ?
Als dat niet zo is, moet je je headers() aanpassen:
header('Content-Disposition: attachment; filename="DownloadFolder/' . $doc_filename . '"');

Geef die $downloadsize = filesize($doc_filename); een error weer als je informatie van een bestand wilt halen, dat in een ander folder zit dan je download.php? (Als dat zo is, dan is je pad naar je bestand gewoon verkeerd)

Lashknife

Legacy Member
het probleem is niet de download te vinden, dat bestaat wel degelijk, en de filesize is ook correct (heb dat nogmaals geëcho'ed dus...)

enigste dat ik ni snap is dat hij met die download die rare downloaddialoog geeft ipv de juiste waarden (filename, type enzo)

Als ik nu zelf in dat save as venster die "download" filename hernoem naar test.jpg en filetype op "all" zet ipv "document" dat er voor een of andere reden staat, dan download hij wel degelijk het bestand eh.

Het is enkel dat dialoogvenster dat onbruikbare info geeft... snap het niet goed...

*edit* ik vermoed dat het een IE6sp1 bug is, want in firefox doet hij het wel juist.... schijt toch! Denk dat ik eens naar microsoft ga mailen :)

killgore

Legacy Member
Lashknife zei:
*edit* ik vermoed dat het een IE6sp1 bug is, want in firefox doet hij het wel juist.... schijt toch! Denk dat ik eens naar microsoft ga mailen :)
vraag dan onmiddelijk of ze alle andere 1001 bugs ook eens uit IE halen en stoppen met van die kut IE-only dingen te ontwikkelen die ze dan bij de noob-community inrammen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan