Avatar billede lsskaarup Nybegynder
29. april 2005 - 12:19 Der er 12 kommentarer og
1 løsning

Åbne fil direkte i tilhørende program f.eks. word

Jeg skal have dette script tilpasset, så filerne bliver åbnet direkte i det tilhørende program, og ikke via IE, som så åbner en emulation af programmet, eller hvad den nu gør.

Scriptet:

<?php
    include('static/opsaetning.php');


function showDir($root, $dir) {
    $KATALOG = "DS Spærsalg";
    $SERVER = "srv-fil1";
    $filliste = array();
    $showdir = "//" . $SERVER . "/" . $KATALOG . "/" . $root;
    mkdir($showdir);
    if ($dir != '') {
        $showdir .= $dir;   
        $filliste[] = "<a href=\"stifinder.php?root=$root&dir=" . substr_replace($dir, '', strrpos($dir, '/')    ) . "\">..</a>";
    }
    if ($handle = opendir($showdir)) {
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != ".." && $file[0] != "~") {
                if (is_dir($showdir . "/" . basename($file))) {
                    $filliste[] = "<a href=\"stifinder.php?root=$root&dir=".$dir."/".basename($file)."\">" . basename($file) . "</a>";
                    //$filliste[] = substr_replace($filliste[1], "\\", $pos, 1);
                } else {
                    $filliste[] = "<a href=\"file:". $showdir . "/" . basename($file) ."\" target=\"_blank\">" . basename($file) . "</a></td></tr>";
                    //$filliste[] = substr_replace($filliste[1], "\\", $pos, 1);
                }
            }
        }   
    }
      closedir($handle);

    return $filliste;
}
?>

<html>
<style>
body, table, tr, td {
    margin-bottom : 0px;
    margin-left : 0px;
    margin-right : 0px;
    margin-top : 0px;
    font-family : Geneva, Arial, Helvetica, sans-serif;
    font-size: 13px;
}
a {
    text-decoration: none;
    color: black;

}
</style>
<body>
<table width="500">
<?php
$filliste = showDir($_GET['root'], $_GET['dir']);
foreach($filliste as $fil) {
  echo "<tr><td>$fil</td></tr>";
}?>
</table>
</body>
</html>

Når filen er åbnet via IE, kan man "bare" vende en af / om til \, men jeg har prøvet at ændre stien, så dette ikke skulle gøres af brugeren, men så får jeg ikke vist filerne i oversigten til sidst.
Avatar billede hyberpreprocessor Nybegynder
29. april 2005 - 12:26 #1
Det kan du ikke (og der findes altså flere browsere end IE)

Du kan tvinge alle browsere til at downloade filen med header.
Se eksemplet på www.php.net/header
Avatar billede lsskaarup Nybegynder
29. april 2005 - 12:57 #2
Kan det overhovedet ikke lade sig gøre.

Og med hensyn til IE, så er det et internt system, hvor firmaet kun kører med IE, så der er ikke noget at diskutere. Det er vigtigere at det virker i IE, end at standarderne er overholdt.
Avatar billede tagman Nybegynder
30. april 2005 - 13:11 #3
Du kan vist også sætte .doc op som den rigtige mime type i din Apache konfiguration, hvis du bruger Apache. Ellers så er den rigtige måde vist at læse .doc-filen ind via en php-fil og sende den til klienten sammen med den rigtige header.

Men den rigtige header burde altså være konfigureret i Apache i stedet... eller IIS, hvis man er til den slags...
Avatar billede lsskaarup Nybegynder
30. april 2005 - 23:32 #4
Okay, det kører på en Apache, men jeg har ikke sat den op, så ved faktisk ikke hvordan indstillingerne er der på. Men hvordan kan/skal jeg gøre hvis jeg vil konfigurere indstillingerne i Apache, for det drejer sig ikke kun om Word-filer også Excel, og måske enkelte andre.
Avatar billede tagman Nybegynder
01. maj 2005 - 00:01 #5
Det er forskelligt fra Apache til Apache.... jeg har en Apache på linux i en særlig distro, så dér ligger konfigurationen i sin helt egen originale struktur; men helt generelt:

forskellige mime types er angivet i:

httpd.conf eller mime.types

disse filer ligger et eller andet sted i din /etc (linux) eller i din c:\Programmer\Apache Group\Apache\conf (mener i hvert fald den hedder "conf")

Det er i øvrigt meget lige til... du skriver en file extension og hvilken beskrivelse der skal sendes til browseren... f.eks.:

Almindelig Excel som åbnes direkte i browseren:
application/excel        xls

Denne linje skal du bare slette, så ved Apache ikke længere hvad den skal fortælle om xls. Husk i øvrigt at du skal genstarte Apache, når du laver ændringer.
Avatar billede hyberpreprocessor Nybegynder
02. maj 2005 - 13:53 #6
tjoo, men tagman , det er jo på selve serveren.

De fleste har ikke adgang til at sætte det op, da mange køber deres webhoteller :]
Men det er ihvertfald ikke muligt med php, så jeg smutter fra tråden.

Behold points, eller giv dem til tagmann hvis i får det løst.
Avatar billede lsskaarup Nybegynder
02. maj 2005 - 14:38 #7
Jeg kan se at de allerede er sat til. Jeg er lidt i tvivl om Excel filer virker, men Word gør i hvert fald. Men de bliver jo "kun" åbnet i en lille word-udgave via browseren, jeg vil gerne have det til at gå uden om broseren og åbne i det fulde program. Grunden til dette er at brugerene gerne vil kunne bruge nogle af de avancerede funktioner i f.eks. word.
Avatar billede tagman Nybegynder
03. maj 2005 - 09:37 #8
Sagen var den, at hvis du vil have, at folk får muligheden for at gemme filerne og åbne dem i det rigtige Word, så skal du slette disse mime type linjer - det er netop hvis de er til stede, at filen åbnes direkte i Word eller Excel.

Hvis du har et web hotel, kan du naturligvis ikke gøre noget ved sagen på den måde... så skal du bruge header() funktionen i php.
Avatar billede lsskaarup Nybegynder
03. maj 2005 - 10:07 #9
Nå, okay, når brugeren får sprøgsmålet om de vil gemme eller åbn, og hvis de så vælger åbn. Bliver dokumenter så åbnet direkte i Word, eller igen via EI og en lille udgave af Word. Kan sgu ikke lige huske det, jeg plejer altid der hjemme, at gemme lokalt først.

Eventuelt, hvis jeg vil bruge  header funktionen, hvordan for jeg så den ind i min kode?
Avatar billede lsskaarup Nybegynder
23. juni 2005 - 09:39 #10
Ahmmmmmm, haløjsa???
Avatar billede tagman Nybegynder
23. juni 2005 - 22:27 #11
Rolig...

> Eventuelt, hvis jeg vil bruge  header funktionen, hvordan for jeg så den ind i min kode?

<?
header("content-type: application/force-download")
?>

Læs om det her http://dk2.php.net/header
Avatar billede lsskaarup Nybegynder
23. juni 2005 - 23:02 #12
Okay, men det holder ikke, hvis brugeren skal downloade det først. De har det jo sådan set allerede liggende på et netværksdrev, dette system giver bare hurtig adgang til filerne. Så måske må jeg se i øjnene at det ikke kan lade sig gøre, og så se om jeg ikke kan overtale brugerne til bare at vende et / om til et \, for så er der ikke noget problem.
Avatar billede lsskaarup Nybegynder
07. september 2005 - 10:26 #13
Nå, intet brugebart svar.
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