Annonceindlæg fra Check Point
29. april 2005 - 16:30
#1
Du kan gøre det sådan: <?php $filename = $_GET['fil']; $length = filesize( $filename ); header( "Pragma: " ); header( "Cache-Control: " ); header( "Content-Length: $length" ); header( "Content-Type: application/octet-stream" ); header( "Content-disposition: attachment; filename=$filename" ); header( "Content-Transfer-Encoding: binary" ); readfile( $filename ); ?> Det script kaldes med ?fil=etdokument.doc f.eks.
29. april 2005 - 16:50
#3
Yeps, med det korrekte filnavn og det hele :) Det ville nok være godt at bygge noget sikkerhed ind i det, f.eks. kalde scriptet download.php og oprette en folder der hedder "filer" i samme niveau og så lave scriptet lidt om: <?php $filename = 'filer/' . basename( $_GET['fil'] ); if ( file_exists( $filename ) ) { $length = filesize( $filename ); header( "Pragma: " ); header( "Cache-Control: " ); header( "Content-Length: $length" ); header( "Content-Type: application/octet-stream" ); header( "Content-disposition: attachment; filename=$filename" ); header( "Content-Transfer-Encoding: binary" ); readfile( $filename ); } else { echo "Filen eksisterer ikke."; } ?>
29. april 2005 - 16:52
#5
Oops: <?php $filename = basename( $_GET['fil'] ); if ( file_exists( 'filer/' . $filename ) ) { $length = filesize( 'filer/' . $filename ); header( "Pragma: " ); header( "Cache-Control: " ); header( "Content-Length: $length" ); header( "Content-Type: application/octet-stream" ); header( "Content-disposition: attachment; filename=$filename" ); header( "Content-Transfer-Encoding: binary" ); readfile( 'filer/' . $filename ); } else { echo "Filen eksisterer ikke."; } ?>