Avatar billede e_w Nybegynder
03. januar 2006 - 08:29 Der er 6 kommentarer og
1 løsning

tvunget download

hejsa, jeg ville hører om der var nogle som ku hjælpe med at vise hvordan en tvunget download skal se ud eller hvis der står noget inde på php.net om i ikke vil sende et link får står og skal bruge et.. det jeg mener med det er at når man klikker på en fil... burde være liget meget hvad for en fil det er, så skal den efterspørger en om man vil downloade, gemme fil... håber der er nogle som kan hjælpe mig..

e_w
Avatar billede dotcom1 Nybegynder
03. januar 2006 - 09:07 #1
Prøv denne:

<?php
/*******************************************************************
  * Force download script:
  * Save this script as i.e. download.php
  *
  * Usage: download.php?filename=name_of_file.extension
  *
  * Examples:
  * <a href="download.php?data.pdf">Download data</a>.
  * You can also use paths in the filename, as in
  * <a href="download.php?../include/data.pdf">Download data</a>.
  *
  * You can specialise the code by putting a line of the form
  * $filename="data.pdf"; immediately after this comment.
  * This will allow you to send exactly one file for download, viz data.pdf.
  *******************************************************************/
  $filename = isset($_GET['filename']) ? $_GET['filename'] : "";
  $shortname = basename( $filename );

if( file_exists( $filename )          // sanity check
    && !eregi( "p?html?", $filename ) // security check
    && !eregi( "inc", $filename )
    && !eregi( "php3?", $filename ) ){
  $size = filesize( $filename );
  header("Pragma: no-cache");
  header("Expires: 0");
  header("Content-Transfer-Encoding: binary");
  header("Cache-Control: must-revalidate, post-check=0, pre-check=0\r\n");
  header("Cache-Control: no-cache, must-revalidate");
  header("Content-Type: application/save");
  header("Content-Disposition: attachment; filename=$shortname");
  $fh = readfile("$filename");
    fpassthru($fh);
   
  exit;
} else {
print "The file $shortname is not available for download";
}
?>
Avatar billede e_w Nybegynder
03. januar 2006 - 09:24 #2
prøver lige at lege med det, så kan jeg lige se om jeg kan få det til at virke... det ligner hvertfald noget af den stil.. jeg snakker om... !!
Avatar billede e_w Nybegynder
03. januar 2006 - 09:33 #3
Ja tak det virker perfekt... :D damé.. det er nice.:P
sender du ikke lige et svar!!!

//e_w
Avatar billede dotcom1 Nybegynder
03. januar 2006 - 09:43 #4
Fino. :)
Avatar billede e_w Nybegynder
04. januar 2006 - 09:01 #5
er det endelig ikke muligt at kører det via en database.. så det ikke skal være en bestem fil.. så den bare henter.. har prøvet at lave noget men det virker ikke rigtig. :S du kan lige prøve at se her nede under, for sys ikke rigtig det virker.. :S eller jo på min egen offline server gør den, men når jeg skal smække det online, så melder den bare den der fejl.. :S mega skummelt sys jeg..

*** download.php ***

include("include/data.php");
$musicgetSQL = mysql_query("SELECT * FROM pm_oldmusic WHERE download = '". $_GET['filename'] ."'");
$musicNow = mysql_fetch_array($musicgetSQL);

$filename="music/old/". $musicNow['download'] ." ";
$shortname = basename($filename);

if( file_exists($filename)         
    && !eregi("p?html?",$filename)
    && !eregi("inc", $filename)
    && !eregi("php3?",$filename) ){
  $size = filesize($filename);
  header("Pragma: no-cache");
  header("Expires: 0");
  header("Content-Transfer-Encoding: binary");
  header("Cache-Control: must-revalidate, post-check=0, pre-check=0\r\n");
  header("Content-Type: application/octet-stream");
  header("Content-Type: application/save");
  header("Content-Disposition: attachment; filename=$shortname");
  set_time_limit(0);
  $fh = readfile("$filename");
  fpassthru($fh);             
  exit;
} else {
print "ERRO: The file $shortname is not available for download";
}



*** Her er så den anden side hvor linket så står **

$musikGet = mysql_query("SELECT * FROM pm_oldmusic ORDER BY id DESC");
while($NowShow = mysql_fetch_array($musikGet)){       
echo'
<a href="download.php?filename='. $NowShow['download'] .'&MusicID='. $NowShow['id'] .'""><img src="img/Download_media.jpg" </a>';
}
Avatar billede dotcom1 Nybegynder
04. januar 2006 - 12:41 #6
Er ikke så meget inde i MySQL. Måske er det bedre at oprette et nyt spørgsmål og se om en MySQL/php-haj bider på. :)
Avatar billede e_w Nybegynder
04. januar 2006 - 13:28 #7
hehe okay..:P det prøver jeg så.. :D takker!!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester