Avatar billede kubuntu Nybegynder
07. juli 2005 - 15:50 Der er 8 kommentarer

Opret fil til download

Hej,

Jeg skal på en eller anden måde kunne oprette en fil med indhold mindende om dette:

Data1 -> -> Data1_kommando
Data2 -> -> Data2_kommando
Data3 -> -> Data3_kommando
Data4 -> -> Data4_kommando
osv...

("->" skal forståes som en tabulator indrykning)

Data# representerer blot udtræk fra en MySQL-database, men det er heller ikke det, jeg ikke kan finde ud af...

Hvordan kan en sådan fil oprettes?
Avatar billede Slettet bruger
07. juli 2005 - 15:54 #1
hmm.. se lidt her:
http://dk2.php.net/fwrite

husk at mappen du skriver til skal have skrive rettighed. Så du skal også kigge lidt på noget chmod.
Avatar billede kubuntu Nybegynder
07. juli 2005 - 16:05 #2
Eksemplet indsætter en newline i starten - det duer ikke!

Hvad med tabulator-indrykninger - hvordan fixes det?
Avatar billede kubuntu Nybegynder
07. juli 2005 - 16:11 #3
Desuden er det meningen at der skal oprettes en fil, som der senerehen skal skrives til...

Append-metoden er fin - men hvordan oprettes en fil? (og chmod'es)
Avatar billede ksoren Nybegynder
07. juli 2005 - 16:12 #4
Prøv om du kan bruge noget her: http://dk2.php.net/header
F.eks.:

<?php
$fil = "data1\t\tdata1_kommando\r\n";
$fil .= "data2\t\tdata2_kommando\r\n";

$len = strlen($fil);
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="filnavn"');
header("Content-Length: $len");

echo $fil;
?>
Avatar billede ksoren Nybegynder
07. juli 2005 - 16:12 #5
okay, hvis du senere skal skrive videre på filen, kan ovenstående så ikke bruges
Avatar billede kubuntu Nybegynder
07. juli 2005 - 18:43 #6
CHMOD ordner jeg således:

chmod("/somedir/somefile", 777);

Men hvordan oprettes en fil?
Avatar billede kubuntu Nybegynder
07. juli 2005 - 19:02 #7
Har omgået det på denne måde, hvilket er endt ret favorabelt...

<?php
$skabelon = 'skabelon';
$fil = "kynaptic" . time();

if (!copy($skabelon, $fil)) {
    echo "Var ikke istand til at oprette filen - Disken er fuld...\n";
}

$data = "Add this to the file\n";

// Tjek for om filen er skrivbar
if (is_writable($fil)) {

    // $filename åbnes i append mode. Hvilket betyder at der skrives i slutningen af filen
    if (!$handle = fopen($fil, 'a')) {
          echo "Kan ikke åbne filen ($fil)";
          exit;
    }

    // Skriver $data til den åbnede fil.

    if (fwrite($handle, $data) === FALSE) {
        echo "Kan ikke skrive til filen ($fil)";
        exit;
    }
   
    echo "Skrev ($data) til ($fil)";
   
    fclose($handle);

} else {
    echo "Filen $fil er ikke skrivbar";
}
?>

Ideen er at denne kodestump skal køres når man trykker på "download" på min hjemmeside...

Når filen er genereret, skal save-dialogboksen poppe op! - Hvordan klares det?
Avatar billede kubuntu Nybegynder
07. juli 2005 - 19:04 #8
Grunden til at jeg ikke skal CHMOD'e den nu, er det fordi "jeg" bliver ejer af filen når "jeg" har oprettet den via copy() ???
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