Avatar billede heavybreezer Nybegynder
14. december 2004 - 16:48 Der er 2 kommentarer og
1 løsning

Tjek om fil eksisterer ved upload

Hey..

Jeg har denne kode, som jeg bruger til at uploade billeder fra min side med:


        <?php



$konfiguration["upload_bibliotek"] = "./pics";
$konfiguration["max_stoerrelse"] = "350";


list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
  die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}


if($minor < 1) {
  $_FILES = $HTTP_POST_FILES;
  $_POST = $HTTP_POST_VARS;
  $_SERVER = $HTTP_SERVER_VARS;
}


if($_FILES["upfil"]["size"] > 0) {

$filnavn = $_FILES['upfil']['name'];

  $fra = $_FILES["upfil"]["tmp_name"];
  $til = $konfiguration["upload_bibliotek"] . "/" . $filnavn;











if(!(eregi(".jpg$", $filnavn)) && !(eregi(".gif$", $filnavn)))
{
echo "Det billede du prøver at uploade er <b>ikke</b> gyldigt - kun .jpg og .gif kan bruges.
<a href=java script:history.back(-1)>  Gå Tilbage</a>";
exit;
}

  $fil_stoerrelse = filesize($fra)/1024;
  if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
      die("Desv&aelig;rre - filen er for stor. Jeg accepterer kun " .
          $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
          ceil($fil_stoerrelse) . "kb");
  }
  if(function_exists("move_uploaded_file")) {
    move_uploaded_file($fra, $til);
  } else {
    copy($fra, $til);
  }

}

$indhold .= bygFormular($_SERVER["PHP_SELF"]);
  $output = bygSide("hej", $indhold);



/**
* Skriver ud til browseren
*/
echo $output;

if( $filnavn == "" ){
echo 'Hvis du ikke ønsker at have et billede, tryk næste.<br><br><input type="button" style="border:2px outset;background:#333333;color:#FFFFFF;font-weight:bold;font-size:11;font-family: verdana;" value="  Næste  " onclick=location.href="opret_bruger.php?billede=nopic.jpg">&nbsp;';


}
else {


echo 'Valgt billede:<br><img src="pics/'.$filnavn.'" width="200" height="200"><br><br><br>Tryk nu på næste...<br><br><input type="button" style="border:2px outset;background:#333333;color:#FFFFFF;font-weight:bold;font-size:11;font-family: verdana;" value="  Næste  " onclick=location.href="opret_bruger.php?billede='.$filnavn.'">&nbsp;';
}
exit;

function bygSide($titel, $indhold) {

  return '
       
              ' . $indhold . '
        ';

}

function bygFormular($action) {

  $formular = '<form action="' . $action . '" method="post" enctype="multipart/form-data">
           
            <b>Ja, jeg vil gerne have billede på min profil:</b><br>
                  <input type="file" name="upfil" />
                <br>
                SKAL være af filtypen .jpg eller .gif og max fylde 350kb<br>
<br>

<br>

                  <input type="submit" value="Brug billede" />
              </form>
              <br>
           
              ';



  return "" . $formular;
 
  header("Location: " .$_SERVER["PHP_SELF"]);
}



?>






Og fandt så dette på php.net:

<?php
$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
  echo "The file $filename exists";
} else {
  echo "The file $filename does not exist";
}
?>


Nogen der kan sætte den ind, hvor den skal være, så den udskriver en besked om at dette filnavn er optaget, hvis dette er tilfældet?
Avatar billede coderdk Praktikant
14. december 2004 - 16:56 #1
if(function_exists("move_uploaded_file")) {
    move_uploaded_file($fra, $til);
  } else {
    copy($fra, $til);
  }

laves om til:

if ( file_exists( $til ) )
{
  die( "En fil med det navn eksisterer allerede." );
}
if(function_exists("move_uploaded_file")) {
    move_uploaded_file($fra, $til);
  } else {
    copy($fra, $til);
  }
Avatar billede heavybreezer Nybegynder
14. december 2004 - 17:07 #2
Det virker jo! ;-)
Smid svar..

tak!
Avatar billede coderdk Praktikant
14. december 2004 - 17:12 #3
Yes yes :)
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