Left Blank Skrevet 8. august 2009 Del Skrevet 8. august 2009 Jeg hadde en liten ide om å skjule filer slik at folk ikke kan automatisk nedlaste alt. Det jeg vil er å lage f eks en mappe www.calamity.org/nedlast/filer/ så putte alle filene der. Så vil jeg i calamity.org/nedlast ha et php script som finner en fil i /filer/ når urlen er calamity.org/nedlast/?fil Er dette mulig? Lenke til kommentar
TMB Skrevet 8. august 2009 Del Skrevet 8. august 2009 Nå er det en stund siden jeg har drevet med PHP, men hvis jeg skjønner deg rett; download.php: <?php $id = $_GET['id']; if ($id == '1'){ $header = 'http://www.link-til-fil-nr-1'; } elseif ($id == '2'){ $header = 'http://www.link-til-fil-nr-2'; } Header(Location: $header); ?> Så henter du fram filer ved hjelp av download.php?id=FIL-ID Dette scriptet vil nok ikke funke, som sagt en stund siden jeg drev med dette, men det gir deg ihvertfall en pekepinn. Lenke til kommentar
Jonas Skrevet 8. august 2009 Del Skrevet 8. august 2009 Problemet med bruk av headers slik du viser, er at brukeren bare blir videresent til den egentlig adressen og da er den plutselig ikke veldig hemmelig lenger. Det du må gjøre er å lese og skrive ut filen med scriptet. Ta en titt på readfile(). Lenke til kommentar
TMB Skrevet 8. august 2009 Del Skrevet 8. august 2009 Noe slikt da <?php $fil1 = 'filnavn.jpg'; $fil2 = 'filnavn2.mp3'; $fileget = $_GET['id']; if ($fileget == 1){ $file = $fil1; } elseif ($fileget == 2){ $file = $fil2; } if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit; } ?> Lenke til kommentar
Left Blank Skrevet 8. august 2009 Forfatter Del Skrevet 8. august 2009 Takk for at du tok deg tid til å skrive ned dette. Men jeg har allerde funnet en løsning med .htaccess og rewriterule. Den funker perfekt men takk igjen for at du tok deg av tid. Lenke til kommentar
Ståle Skrevet 8. august 2009 Del Skrevet 8. august 2009 Filnavndelen kan gjøres litt enklere $filer = array( "filnavn1.jpg", "filnavn2.png" ); $file = $filer[ $_GET['id']-1 ]; // -1 fordi 1. elementet i arrayet er alltid 0. Lenke til kommentar
qualbeen Skrevet 8. august 2009 Del Skrevet 8. august 2009 Takk for at du tok deg tid til å skrive ned dette.Men jeg har allerde funnet en løsning med .htaccess og rewriterule. Den funker perfekt men takk igjen for at du tok deg av tid. Aha, du har en løsning hvor en request mot filen, blir henvist til et php-script? Litt nysgjerrig, del løsningen med oss da vel! :-) Selv ville jeg ha løst problemet med å i første omgang ikke hatt filene under www/[mappe®/some_file.ext, men istedet puttet filene i en katalog på serveren som ikke kan aksesseres utenifra. Koden min hadde så brukt file_get_contents() eller lignende funksjoner for å lese inn innholdet - som så blir dyttet ut til klienten vha header(). Altså mye det samme som hva timb foreslår. Lenke til kommentar
Left Blank Skrevet 9. august 2009 Forfatter Del Skrevet 9. august 2009 Takk for at du tok deg tid til å skrive ned dette.Men jeg har allerde funnet en løsning med .htaccess og rewriterule. Den funker perfekt men takk igjen for at du tok deg av tid. Aha, du har en løsning hvor en request mot filen, blir henvist til et php-script? Litt nysgjerrig, del løsningen med oss da vel! :-) Selv ville jeg ha løst problemet med å i første omgang ikke hatt filene under www/[mappe®/some_file.ext, men istedet puttet filene i en katalog på serveren som ikke kan aksesseres utenifra. Koden min hadde så brukt file_get_contents() eller lignende funksjoner for å lese inn innholdet - som så blir dyttet ut til klienten vha header(). Altså mye det samme som hva timb foreslår. Ah, men ja, man behover ikke php i det hele tatt.. Her er .htaccess RewriteCond %{QUERY_STRING} ^tunes$ RewriteRule ^$ /music.php [L] Noe som betyr at man kan skrive http://media.calamity.org/?tunes i browseren.. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå