Avatar billede noodrem Nybegynder
14. januar 2008 - 10:12 Der er 2 kommentarer og
1 løsning

upload af fil

Hej

Jeg har følgende kode, der opdaterer et uploadet billede og sletter det gamle.

Mit problem er at det felt hvor man kan gennemser filer der skal oploades er tomt når man trykker rediger og jeg kan ikke bruge den tidligere sti til filen da det er forskelligt fra computer til computer.

Det jeg vil have den til er at lade den gamle fil (billede) være hvis der ikke er valgt noget nyt billede til upload.

Kode:


<?

if(!isset($_SESSION['admin'])) {
    include("login/admincheck.php");
    } else {
        $tekst = $_REQUEST['tekst'];
        $overskrift = $_REQUEST['overskrift'];
        $submit = $_REQUEST['submit'];
        $upfil = $_REQUEST['upfil'];
       
        $selectall = mysql_query("SELECT * FROM forsidef") or die(mysql_error());
        $row = mysql_fetch_assoc($selectall);
       
        $filnavnu = $row['filnavn'];
        $filnavnthumbu = $row['filnavnthumb'];
       
        if(!isset($_FILES)) {
            echo "";
        } else {
       
        if(isset($filnavnu)) {
            unlink("$filnavnu");
            unlink("$filnavnthumbu");
        } else {
            echo "";
        }
           
       
       
    ///*** FIL START FIL START ***///
               
        function replace_string($ind_str){
            $soketter = array("æ","ø","å","Æ","Ø","Å"," ");
            $byttil = array("ae","oe","aa","AE","OE","AA","_");
            $tekst = str_replace($soketter,$byttil,$ind_str);
            return $tekst;
        }
        function resize( $filename, $newfilename, $maxw, $maxh ){
            $result = false;
            $srcim = imagecreatefromjpeg( $filename );
            $ow = imagesx( $srcim );
            $oh = imagesy( $srcim );
            $wscale = $maxw / $ow;
            $hscale = $maxh / $oh;
            $scale = ( $hscale < $wscale ? $hscale : $wscale );
            $nw = round( $ow * $scale, 0 );
            $nh = round( $oh * $scale, 0 );
            $dstim = imagecreatetruecolor( $nw, $nh );
            imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
            $result = imagejpeg( $dstim, $newfilename, 85 );
            imagedestroy( $dstim );
            imagedestroy( $srcim );
            return $result;
        }
        if(isset($_POST['submit'])){
            if($_FILES["upfil"]["size"] > 0) {
            $konfiguration["upload_bibliotek"] = "./forsidet";
            $konfiguration["max_stoerrelse"] = "10000";
           
            /* Hvor flytter vi fra og til */
            $fra = $_FILES["upfil"]["tmp_name"];
            $til = $konfiguration["upload_bibliotek"] . "/" . replace_string($_FILES["upfil"]["name"]);
            $til_t = $konfiguration["upload_bibliotek"] . "/thumb_" . replace_string($_FILES["upfil"]["name"]);
               
            /* Check PHP-version */
            list($major, $minor, $rev) = explode(".", phpversion());
            if($major < 4){
              die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
              }
           
            /* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */
              if($minor < 1){
              $_FILES = $HTTP_POST_FILES;
            $_POST = $HTTP_POST_VARS;
            $_SERVER = $HTTP_SERVER_VARS;
              }
           
              /* Accepterer vi filens stoerrelse? */
              $fil_stoerrelse = filesize($fra)/1024;
              if($fil_stoerrelse > $konfiguration["max_stoerrelse"]){
              die("Desværre - filen er for stor. Jeg accepterer kun " .
            $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
            ceil($fil_stoerrelse, 1) . " kb");
              }
           
              if(function_exists("move_uploaded_file")) {
            resize($fra, $til, 324, 216);
              resize($fra, $til_t, 400, 260);
            }
            else {
              copy($fra, $til);
            }
            }
       
           
                $filnavn = $til;
                $filnavnthumb = $til_t;
            }
           
        ///*** FIL SLUT  FIL SLUT ***///
       
        }
   
           
            $opdater_overskrift = mysql_query("UPDATE forsidef SET overskrift='$overskrift'") or die(mysql_error());
            $opdater_forside = mysql_query("UPDATE forsidef SET tekst='$tekst'") or die(mysql_error());
           
            if(!isset($_FILES)) {
                echo "";
            } else {
           
            $opdater_filnavn = mysql_query("UPDATE forsidef SET filnavn='$filnavn'") or die(mysql_error());
            $opdater_filnavnthumb = mysql_query("UPDATE forsidef SET filnavnthumb='$filnavnthumb'") or die(mysql_error());
           
            }
           
            header("location:index.php");
        }
   
   

?>


Jeg har prøvet at få den til at lade være med at opdatere og slette den gamle fil hvis feltet ikke er udfyldt med if(!isset($_FILES)) men det virker tilsyneladense ikke.
Avatar billede coderdk Praktikant
14. januar 2008 - 12:00 #1
if ($_FILES["upfil"]['size'] == 0)

Måske?
Avatar billede noodrem Nybegynder
14. januar 2008 - 12:04 #2
Så virker det. Mange tak coderdk.

Du smider bare et svar
Avatar billede coderdk Praktikant
14. januar 2008 - 12:05 #3
Aight :)
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