Avatar billede lsskaarup Nybegynder
10. september 2008 - 15:58 Der er 8 kommentarer og
1 løsning

Gem som - funktion

Jeg har en siden, der tjekker om en fil allerede findes, når man prøver at gemme filen. Brugeren kan så bælge om man vil overskrive eller ej, men hvordan kan jeg lave en "Gem som" funktion, så de samtidig får mulighed for at gemme filen, under et andet navn?
Avatar billede w13 Novice
10. september 2008 - 16:07 #1
Hvilken fil taler vi da om? Når en bruger vælger at "Gemme som", skal du jo først tjekke om filnavnet allerede findes. Hvis det gør det, skal brugeren acceptere at overskrive filen. Så kan din kode slette den eksisterende fil, og dernæst oprette den på ny med det nye indhold.

Andet kan jeg ikke rigtig sige uden kodeeksempler.
Avatar billede jakobdo Ekspert
10. september 2008 - 17:11 #2
Det skal vel laves via en formular, som så spørger til et filnavn ?
Avatar billede lsskaarup Nybegynder
10. september 2008 - 19:55 #3
Ja, jeg glemte selvfølgelig at vedlægge noget kode, det må jeg gør i morgen...

Php-koden tager fat i en rtf-skabelon, og udfylder en masse feltkoder med data fra en tilbud/ordre database og gemme herefter dokumentet, som en rtf fil. Har brugeren rettet i tilbuddet og blive nødtil at udskrive rtf-dokumentet igen, så tjekker php-koden, altså om filen findes i forvejen, og giver herefter brugeren mulighed for at annullere overskrivelsen.

Det som jeg gerne vil have, er at der også kunne være en mulighed for at sige "gem som", så brugeren kan give rtf-filen et nyt navn, i stedet for at overskrive.
Avatar billede jakobdo Ekspert
10. september 2008 - 20:17 #4
Det kan du jo lave ala:

if(file_exists($filnavn)){
echo 'Filen findes, angiv nyt navn: <input type="text" name="rename" ... />';
}
Avatar billede lsskaarup Nybegynder
11. september 2008 - 10:47 #5
Her er hele koden i siden der tjekker:

<?php
    /* GENERATE ORDRE ELLER TILBUD ELLER KALKULATION */
    require('system/global_defs.php');

    include('static/opsaetning.php');
    include('static/afsnit1.php');
    include('static/afsnit3.php');
    include('static/afsnit5.php');
    include('static/afsnit8.php');
    include('static/afsnit9.php');
    include('static/udskrift.php');

    //hvilket sprog er der valgt
    $sprog = $_GET['sprog'];

    //hvilken type er der tale om
    $type =  $_GET['type'];
   
    //hvilket id er der tale om
    $id =  $_GET['id'];   
   
    //hvilken nr er der tale om
    $nr =  $_GET['nr'];   

    //Til tjek af filtypen, ordre, tilbud el. blanket
    $diverse = $_GET['diverse'];

    $sql = "SELECT ".$_GET['type'].", rev FROM ".$_GET['type']." WHERE id = '".$_GET['id']."'";
    $res = mysql_query($sql) or die($sql);
    list($nr, $rev) = mysql_fetch_row($res);

    foreach ($OVERSAET as $val) {
        $array = & $$val['felt'];
        if (!is_array($array)) $array = array();
        $array = & $array[];
        $array['dansk'] = $val['dansk'];
        $array[$sprog] = $val[$sprog];
    }
   
    function findValue($felt, $tekst) {
        foreach ($felt as $val) {
            if ( strtolower($val['dansk']) == strtolower($tekst) ) {//For at sikre det er lige meget om brugeren skriver betegnelserne med stort et sted og lille et andet sted
                return $val[$_GET['sprog']];
            }
        }
    }

    $mappe1;
    $mappe2;
    if ($_GET['type'] == Tilbud || $_GET['type'] == tilbud) {//Tjekker hvilken type sagen er, tilbud/ordre
        //$num = substr("$root", -6);
        $mappe1 = substr($nr, -5, 1);
        $mappe2 = substr($nr, -4, 1);
        $ubermappe = substr($nr, -6, 2);
        $slutmappe;
        $startmappe = $mappe1 . $mappe2 . "000";

        $mapper = $mappe1 . $mappe2;

        if ($mapper > 9){
            $startmappe = $mappe2 . "000";
        } else {
            $startmappe = $mapper . "000";
        }
        if ($mappe1 == 0){
            $slutmappe = (($mappe2 +1) . "000") - 1;
            $startmappe = $mappe2 . "000";
        } else {
            $slutmappe = ((($mappe1 . $mappe2)+1) . "000" -1);
        }
        if ($slutmappe<"1000"){
            $mappenavn = $ubermappe . $startmappe ."-". $ubermappe . "0".$slutmappe;
        } else {
            if($slutmappe > 10000){
                $mappenavn = $ubermappe . $startmappe ."-". substr($ubermappe, -2, 1) . $slutmappe;
            } else {
                $mappenavn = $ubermappe . $startmappe ."-". $ubermappe . $slutmappe;
            }
        }
        //$mappenavn = $ubermappe . $startmappe ."-". $ubermappe . $slutmappe;
        //$mappenavn = $startmappe ."-". $slutmappe;
        $root = $type . "/". $mappenavn . "/" . $num;
    } else {

        $num = substr("$nr", -5);
        $mappe1 = substr($num, -4, 2);
        if ($mappe1 > 9) {
            $mappe2 = $mappe1+1;
        } else {
            $mappe1 = substr($num, -3, 1);
            $mappe2 = $mappe1 +1;
        }

        $ubermappe = substr($num, -6, 2);//retunere de 2 første cifre
        if ($mappe1 > 9){
            $mappe1 = substr($num, -3, 1);
            $mappe1 = $mappe1 . "00";

        } else {
            $mappe1 = $mappe1 . "00";
        }

        //Laver slutmappen
        $slutmappe1 = ((substr($num, -3, 1) + 1)."00") -1;
        if ($slutmappe1 < 100) {
            $slutmappe1 = "0". $slutmappe1;
        }

        $mappenavn = $ubermappe . $mappe1 . "-" . $ubermappe . $slutmappe1;
        $root = $type . "/" . $mappenavn . "/";
    }

    // Filename
    if (isset($_GET['print'])) {
        $file = "//$SERVER/$KATALOG/".$_GET['type']."/".$nr."/".$_GET['type'].$_GET['print'].$nr."R".$rev."-".$sprog.".rtf";
    } else {
        //Oprindelig
        $file = "//$SERVER/$KATALOG/".$root.$nr."/".$_GET['type'].$nr."R".$rev."-".$sprog.".rtf";
            //    echo "<br>".$root;
    }
    $file;

//tjek om filen findes
if(!file_exists($file)){
        header("Location: /generate.php?type=$type&diverse=$diverse&id=$id&nr=$nr&sprog=$sprog&ny=1");
} else {?>

<form action="/generate.php" method="get" name="tjekFil" id="ds" style="display:inline;">
<table>
    <tr>
        <td colspan="2">Filen findes allerede, vil du overskrive den?</td>
    </tr>
    <tr>
        <td>
            <input type="submit" name="ja" class="submit" value="Ja" style="width: 50px;" />
            <input name="sprog" type="hidden" value="<?php echo $sprog;?>" />
            <input name="id" type="hidden" value="<?php echo $id;?>" />
            <input name="type" type="hidden" value="<?php echo $type;?>" />
            <input name="diverse" type="hidden" value="<?php echo $diverse;?>" />
            <input name="nr" type="hidden" value="<?php echo $nr;?>" />
        </td>
        <td>
            <input type="submit" name="nej" class="submit" value="Nej" style="width: 50px;"/>
        </td>
    </tr>
</table>
</form>
<?php
}
?>
Avatar billede lsskaarup Nybegynder
11. september 2008 - 10:51 #6
jakobo -> Det er egentlig ikke en dum ide, det tror jeg lige jeg vil kigger lidt nærmere på.
Avatar billede lsskaarup Nybegynder
11. september 2008 - 13:39 #7
jacoko -> smid et svar, da du kom med den løsning, jeg tog udgangspunkt i.

Jeg lavede en felt, hvor brugerne kan indtaste et filnavn, og funktionaliteten giver så filen enten brugerens navn eller standardnavnet, alt efter om førnævnte felt er udfyldt
Avatar billede jakobdo Ekspert
11. september 2008 - 13:50 #8
Du får et svar.
Avatar billede jakobdo Ekspert
11. september 2008 - 14:20 #9
Takker for point.
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