08. januar 2004 - 16:50
Der er
15 kommentarer og 1 løsning
Skjul filens placering - Hvordan?
hejsa allesammen jeg har nogle filer på min webserver, som det skal være muligt at downloade. Men man må ikke kunne se filens placering på serveren, kun linket. Håber i forstår spørgsmålet :-)
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
08. januar 2004 - 16:55
#1
I ASP kan man åbne filen binært, og udskrive den, med det rette ContentType (eller hvad den hedder).. mon ikke at man kan det samme i php..?
08. januar 2004 - 16:57
#2
hmm nu er jeg ikke det store haj til det... kunne godt tænke mig noget mere specifikt :-)
08. januar 2004 - 17:03
#4
well er ikke så hård til det php, er der ikke lige en der ligger inde med et eksempel?? :-)
08. januar 2004 - 17:06
#5
jeg benytter dette her script, men vil gerne have outputtet til at vise linksene, men med skjult placering <?php $path = opendir("./test"); $dirlist = array(); while (false !== ($dir = readdir($path))){ if ($dir == "." || $dir == "..") { continue; }else{ $dirlist[] = $dir; } } closedir($path); sort($dirlist); for($i = 0; $i < count($dirlist); $i++) { echo"<a href=\"test/$dirlist[$i]\">$dirlist[$i]</a><br>"; } clearstatcache(); ?>
08. januar 2004 - 17:19
#6
prøv noget i denne stil.. filen skjules ved, at man ikke kender navnet på underbiblioteket (test) <?php $path = opendir("./test"); $dirlist = array(); while (false !== ($dir = readdir($path))){ if ($dir == "." || $dir == "..") { continue; }else{ $dirlist[] = $dir; } } closedir($path); sort($dirlist); for($i = 0; $i < count($dirlist); $i++) { echo"<a href=\"getfile.php?file=$dirlist[$i]\">$dirlist[$i]</a><br>"; } clearstatcache(); ?> -------------------------- getfile.php: <?php $ok = false; $file = $_GET['file']; $pathname = "test"; $path = opendir($pathname); $dirlist = array(); while (!$ok && false !== ($dir = readdir($path))){ if ($dir == "." || $dir == "..") { continue; }else{ if($dir == $file){ header("Content-Type: application/force-download"); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize($dir)); header("Content-Disposition: attachment; filename=$dir"); readfile("$pathname/$dir"); $ok = true; } } } closedir($path); if(!$ok) echo "Fil ikke fundet"; ?>
08. januar 2004 - 17:28
#7
nu kan man ikke se filens placering og det er bare lækkert :-) men klikker man på det så siger den The requested URL /first/getfile.php?file=else.jpg was not found on this server. og den skal jo gerne enten åbne filen eller spørge om jeg vil downloade den :-)
08. januar 2004 - 17:29
#8
nå, men du fik jo lige nogle point der, ikk lige menningen endnu, men jeg vil gerne give nogle flere hvis resten også bliver løst :-)
08. januar 2004 - 17:30
#9
hmm og du har gemt getfile.php i samme bibliotek?
08. januar 2004 - 17:30
#10
.. som den du bruger til at vise filerne?
08. januar 2004 - 17:37
#11
ok, det havde jeg faktisk lige glemt, men nu virker det næsten, bortset fra at den kun downloader selve getfile.php uanset hvilket link man trykker på...
08. januar 2004 - 17:41
#12
vi prøver lige at lave en lidt bedre udgave af getfile.php <?php $file = $_GET['file']; $path = "./test/$file"; if(file_exists($path)){ header("Content-Type: application/force-download"); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize($path)); header("Content-Disposition: attachment; filename=$file"); readfile($path); }else{ echo "Fil ikke fundet"; } ?>
08. januar 2004 - 17:44
#13
for dææælen mester så køre det bare....... smid lige et svar, så giver jeg nogle point
08. januar 2004 - 17:45
#14
point har du vist allerede givet :)
08. januar 2004 - 17:46
#15
jamen hvis det er rigeligt med dem, så siger jeg da bare mange tak :-)
08. januar 2004 - 17:46
#16
bare i orden
Vi tilbyder markedets bedste kurser inden for webudvikling