Jaha, så har man börjat lära sig PHP också, och jag håller då på att följa en tutorial för hur man skapar en download-länk, dvs en länk där filen laddas ner till användarens disk, istället för att öppnas i Browsern.
Filen laddas ner alright, men problemet är att den på något sätt blir skadad och sen inte kan öppnas. Filstorleken blir riktigt satt så det verkar inte vara det heller
Såhär ser scriptet ut
<?php
// block any attempt to explore the filesystem
if (isset($_GET['file']) && basename($_GET['file']) == $_GET['file']) {
$getfile = $_GET['file'];
}
else { $getfile = NULL;
}
// define error handling
$nogo = 'Sorry, download unavailable. <a href="prompt.php">Back</a>.';
if (!$getfile) {
// go no further if filename not set
echo $nogo;
}
else {
// define the pathname to the file
$filepath = '/'.$getfile;
// check that it exists and is readable
if (file_exists($filepath) && is_readable($filepath)) {
// get the file's size and send the appropriate headers
$size = filesize($filepath);
echo $size;
header('Content-Type: "application/force-download"');
header('Content-Length: '.$size);
header('Content-Disposition: attachment; filename='.$getfile);
header('Content-Transfer-Encoding: binary');
// open the file in binary read-only mode
// suppress error messages if the file can't be opened
$file = @ fopen($filepath, 'rb');
if ($file) {
// stream the file and exit the script when complete
fpassthru($file);
exit;
}
else {
echo $nogo;
}
}
else {
echo $nogo;
}
}
?>
Get-parametern "file" innehåller filnamnet och den är placerad direkt på root-nivån på disken, alltså, filen hittas osv, men ändå blir något fel - vad kan det vara?