webForumDet fria alternativet

Begränsa åtkomst till filer

Webbservrar

1 svar · 201 visningar · startad av Niehls

Medlem sedan juli 2002131 inlägg
Frågan#1

Är inte säker på detta är rätt forum, hoppas jag gör rätt.
Finns det nåt sätt som jag kan starta en nedladdning från en katalog som ligger utanför apaches documentroot?
jag har en hemsida där man måste logga in för att få tillgång till vissa filer som man kan ladda ner.
anledningen till att jag inte kan ha dessa under documentroot är att man då kan skriva i sökvägen till filen i adressfältet för att ladda ner den. har försökt lite med headers och phpfunktioner som fopen och fread. jag lyckades få till det så att .exe-filer kunde laddas ner, men inte filer som avi och mp3.
all slags hjälp uppskattas innerligen.
exempelvis.. om min documentroot är e:/apache/htdocs, och jag har filer i e:/apache/files, hur gör jag då för att användaren skall kunna ladda ner dessa filer?

Medlem sedan juli 2002131 inlägg
#2

Så här löste jag det:

		
$file_size = filesize($fullpath); 
$p = $downloadstringarray["basename"];
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$p\""); 
header("Content-Transfer-Encoding: binary"); 
header("Content-length: ".(string)($file_size)); 
header('Cache-Control: public'); 
readfile($fullpath);

också skickar du sökvägen till sidan.
hämtar den med $_POST[], $_GET[] eller $_REQUEST (för du har väl register_globals off) fixar som det skall vara, slänger in det i $fullpath.

270 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)