27. november 2008 - 21:50Der er
2 kommentarer og 1 løsning
Hent fil fra link, men anvend anden filnavn
Jeg har gemt nogle filer i en servermappe og navngivet dem fx. fil_1.xxx fil_2.xxx osv.
Filernes oprindelige filnavne ligger i MySQL, fx. som $row['filnavn'] Nu ønsker jeg at lave et link til fx. fil nr. 1, så den kan hentes fra serveren ved at klikke på linket. Men hvordan hulen henter jeg filen med det oprindelige navn. Jeg vil jo normalt linke med: echo "<a href='fil_1.xxx'>".$row['filnavn']."</a>"; Men så åbnes filen med det forkeret filnavn og program.
hvor ID så er filens ID, download.php er så et script der oversætter ID til faktisk fil og kender så også det oprindelige filnavn, og serverer dette. Pseudokode for download.php:
<?php
// Hent org filnavn fra db og faktiske filnavn $sql = sprintf("SELECT niværende_filnavn, org_filnavn FROM filer WHERE fil_id = %d", $_GET['id'] ); $qh = mysql_query( $sql ) or die( mysql_error() ); if ( mysql_num_rows( $qh ) > 0 ) { $row = mysql_fetch_assoc( $qh ); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment;filename=\"" . $row['filnavn'] ."\"); echo file_get_contents( $row['nuværende_filnavn'] ); } else { die("Fil ikke fundet."); }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.