Avatar billede cresswell Nybegynder
12. november 2003 - 21:39 Der er 11 kommentarer og
1 løsning

Download af txt-fil

Jeg har før spurgt her på experten om det var mulig at få download-dialog (altså den hvor man kan vælge om man vil åbne den eller gemme den et sted) frem istedet for at den viser en txt-filen direkte i browseren. Desværre fik jeg afvide, at det kunne man ikke.

Imidlertid har jeg set det lade sig gøre i phpMyAdmin. Når man skal exportere sin mysql-database, kan man afkrydse i en boks. Så dialogboksen frem.. Jeg har været inde i php-filen, men fandt desværre ikke ud af hvor det fungerede.. Jeg håber i kan hjælpe mig..

Mvh
  Anders Hansen
Avatar billede ohmish Nybegynder
12. november 2003 - 21:48 #1
kald filen fil.php og link til den.
Indhold:

<?php
  header("Content-disposition: filename=fil.txt");
  header("Content-type: application/ms-download");
  header("Pragma: no-cache");
  header("Expires: 0");
?>
Avatar billede cresswell Nybegynder
12. november 2003 - 21:52 #2
thx..
Avatar billede Slettet bruger
12. november 2003 - 22:03 #3
Hej!

Så har dem du har spurgt ikke vidst hvad de snakker om..

Men det er svært at lave noget der virker i alle browsere.
Avatar billede ohmish Nybegynder
12. november 2003 - 22:09 #4
ja og på MAC vil ovenstående nok ikke virke (så vidt jeg husker)
Avatar billede ohmish Nybegynder
12. november 2003 - 22:15 #5
men det virker da i Explorer og nyeste Netscape og Opera + en masse jeg ik har testet
Avatar billede Slettet bruger
12. november 2003 - 22:19 #6
Det virker ikke i Mozilla...den føjer .php til tekstfilens navn.
Avatar billede ohmish Nybegynder
12. november 2003 - 22:37 #7
virker fint her
Avatar billede ohmish Nybegynder
12. november 2003 - 22:43 #8
ellers prøv dette:

Lav en phpfil.. "filer.php" med indholdet:

<?php
header("Content-type: application/octet-stream");
header("Content-Length: ".filesize($filename));
header("Content-Disposition: attachment; filename=\"".$filename."\"");
header("Pragma: no-cache");
header("Expires: 0");

$fil = $_GET['fil'];

if (is_file($fil)) {
    header("Content-type: application/octet-stream");
    header("Content-Length: ".filesize($fil));
    header("Content-Disposition: attachment; filename=\"".$fil."\"");
   
    $fp = fopen($fil, 'rb');
    fpassthru($fp);
    fclose($fp);
}
else {
    echo "Filen kunne ikke findes";
}

?



Nu kan du bruge linket som filer.php?fil=Nyhedsbrev1.txt
Avatar billede ohmish Nybegynder
12. november 2003 - 22:44 #9
hov.. sådan her:

<?php
$fil = $_GET['fil'];

if (is_file($fil)) {
    header("Content-type: application/octet-stream");
    header("Content-Length: ".filesize($fil));
    header("Content-Disposition: attachment; filename=\"".$fil."\"");
    header("Pragma: no-cache");
    header("Expires: 0");
   
    $fp = fopen($fil, 'rb');
    fpassthru($fp);
    fclose($fp);
}
else {
    echo "Filen kunne ikke findes";
}

?
Avatar billede cresswell Nybegynder
13. november 2003 - 13:54 #10
okay... tak for det!!
Avatar billede cresswell Nybegynder
13. november 2003 - 21:01 #11
Hvad nu hvis jeg vil have den til at downloade en tmp-fil fra et anden script jeg har skrevet?? jeg har brugt "tmpfile"
Avatar billede ohmish Nybegynder
14. november 2003 - 10:33 #12
jeg tror ikke helt jeg forstår hvad du mener.

men du kan jo ændre filens navn til hvad som helst, med samme effekt:

filer.php?fil=EtEllerAndet.tmp
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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