file..
Hey,
er is een beetje moeilijk een titel aan te geven, maar het probleem is het volgende:
Ik wil dat als je naar nogwat.php gaat, er een zip wordt gedownload die eigenlijk test.zip heet, maar dat je dan in het downloadschermpje nogwat.zip ziet.
Oftewel:
er is een 'secret.zip'.
als iemand naar 'file.php?id=123' gaat, wordt er een bestand gedownload '123.zip', dat in wezen 'secret.zip' is. Iemand enig idee?
er is een beetje moeilijk een titel aan te geven, maar het probleem is het volgende:
Ik wil dat als je naar nogwat.php gaat, er een zip wordt gedownload die eigenlijk test.zip heet, maar dat je dan in het downloadschermpje nogwat.zip ziet.
Oftewel:
er is een 'secret.zip'.
als iemand naar 'file.php?id=123' gaat, wordt er een bestand gedownload '123.zip', dat in wezen 'secret.zip' is. Iemand enig idee?
Gewijzigd op 01/01/1970 01:00:00 door Douwe
Gesponsorde koppelingen:
Ik weet het niet zeker, maar misschien kun je iets met mod rewrite in de download map doen.. Alleen zie ik hier het nut niet van in omdat alleen voor downloads te gebruiken, je komt alsnog bij hetzelfde bestand terecht, en het zal weinig uitmaken of de urlbalk voor de download er netter uitziet of niet.
Header, dat is je toverwoord.
@Arjan; ik weet het, als je het zo stelt klink het zinloos, maar dat is niet het niet, in mijn geval.
@Elwin; Dat ken ik, maar hoe kan ik dan zorgen dat er 'nogwat.zip' staat terwijl het echte bestand 'secret.zip' heet?
@Elwin; Dat ken ik, maar hoe kan ik dan zorgen dat er 'nogwat.zip' staat terwijl het echte bestand 'secret.zip' heet?
Ik had eens iets gemaakt, miss heb je er wat aan:
En dan gewoon:
Hoop dat het werkt =)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function download($filename, $data)
{
$salt = floor(rand()).'_';
$handle = fopen($salt.$filename,'w');
fwrite($handle,$data);
fclose($handle);
$size = filesize($salt.$filename);
header('Content-Length: '.$size);
header('Content-type: Application/octet-stream');
header('Content-Disposition: attachment; filename='.str_replace(' ','%20',$filename));
readfile($salt.$filename);
unlink($salt.$filename);
}
?>
function download($filename, $data)
{
$salt = floor(rand()).'_';
$handle = fopen($salt.$filename,'w');
fwrite($handle,$data);
fclose($handle);
$size = filesize($salt.$filename);
header('Content-Length: '.$size);
header('Content-type: Application/octet-stream');
header('Content-Disposition: attachment; filename='.str_replace(' ','%20',$filename));
readfile($salt.$filename);
unlink($salt.$filename);
}
?>
En dan gewoon:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
include 'downloadfunctie.php';
download('secret.zip',file_get_contents('123.zip'));
?>
include 'downloadfunctie.php';
download('secret.zip',file_get_contents('123.zip'));
?>
Hoop dat het werkt =)
Ik heb het uiteindelijk gewoon zo gedaan, geen idee waarom ik daar niet eerder aan dacht:



