Avatar billede michaelb.dk Nybegynder
22. september 2005 - 19:58 Der er 14 kommentarer og
1 løsning

Upload - samme filnavn

Kan det lade sig gøre at sætte en advarsel på denne upload-kode, hvis man prøver at uploade en fil der allerede findes i mappen. Altså med samme filnavn:

------------------

<?php

if (isset($_FILES['upfile'])) {

$dist = "";

for($i = 0; $i < count($_FILES['upfile']['name']); $i++) {

    if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="") {

        if(is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {

move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $_FILES['upfile']['name'][$i]);

        }else{

    echo"Upload til serveren skete ikke!";

    }
$str1 = $_FILES['upfile']['name'][$i];
$str2 = $_FILES['upfile']['size'][$i];
$str3 = $_FILES['upfile']['type'][$i];

echo "$str1 blev uploadet";
        }
    }
}else{
?>

<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="upfile[]" type="file"><br><br>
<input type="submit" value="Upload fil" class="submit"><br><br>
</form>

<?php
}
?>
Avatar billede jaw Nybegynder
22. september 2005 - 20:04 #1
Tjah, tjoh. En nem måde vil jo være at ændre denne:
echo"Upload til serveren skete ikke!";
til:
echo"Upload til serveren skete ikke! Dette kan bl.a. skyldes, at filen allerede findes.";
Avatar billede jaw Nybegynder
22. september 2005 - 20:05 #2
Eller bruge file_exists før du starter uploaden:

if(file_exists($_FILES['upfile']['name'][$i])) {
  echo "Filen findes allerede.";
}
Avatar billede michaelb.dk Nybegynder
22. september 2005 - 20:08 #3
Ja, for hvis man uploader en ny fil med samme navn, overskriver den den i forvejen eksisterende fil.

Prøver dit andet svar, tak for det.
Avatar billede jaw Nybegynder
22. september 2005 - 20:10 #4
Ok, så skal den lige tilpassen en lille smule mere, for nu vil den dog udskrive at filen eksisterer, men den vil stadig upload og overskrive. Så prøv:

if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="" && !file_exists($dist.$_FILES['upfile']['name'][$i])) {
Avatar billede michaelb.dk Nybegynder
22. september 2005 - 20:33 #5
Hvordan laver jeg en alert hvis man så uploader en i forvejen eksisterende fil?
Avatar billede jaw Nybegynder
22. september 2005 - 20:39 #6
Ja, der stenede jeg så lige en tak for meget, så ændrer lige lidt igen:

<?php

if (isset($_FILES['upfile'])) {
    $dist = "";   
    for($i = 0; $i < count($_FILES['upfile']['name']); $i++) {
        if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="") {
            if(file_exists($_FILES['upfile']['name'][$i])) {
                echo "Filen eksisterer allerede";
            } else {
                if(is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
                    move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $_FILES['upfile']['name'][$i]);
                }else{
                echo"Upload til serveren skete ikke!";
            }
                $str1 = $_FILES['upfile']['name'][$i];
                $str2 = $_FILES['upfile']['size'][$i];
                $str3 = $_FILES['upfile']['type'][$i];
                echo "$str1 blev uploadet";
            }
    }
  }
}else{
Avatar billede michaelb.dk Nybegynder
22. september 2005 - 20:50 #7
Det virker perfekt isoleret set, men når jeg sætter det ind i min oprindelige kode, får jeg fejl i linien: }else{

------------------------

<body bgcolor="#E4EAF2" scroll="yes">
<center><font face="Verdana" Size="4"><b>Billede upload</b></font><br></center>

<?php

if (isset($_FILES['upfile'])) {

$dist = "";

if (isset($_FILES['upfile'])) {
    $dist = "";
    for($i = 0; $i < count($_FILES['upfile']['name']); $i++) {
        if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="") {
            if(file_exists($_FILES['upfile']['name'][$i])) {
                echo "Filen eksisterer allerede";
            } else {
                if(is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
                    move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $_FILES['upfile']['name'][$i]);
                }else{
                echo"Upload til serveren skete ikke!";

    }
$str1 = $_FILES['upfile']['name'][$i];
$str2 = $_FILES['upfile']['size'][$i];
$str3 = $_FILES['upfile']['type'][$i];

echo "<table><tr><td><a href=$str1 target=_blank><img src=$str1 width=150 height=90 border=0></a></td><td><font face=verdana size=1>For at indsætte dette billede skal du kopiere følgende kode ind i din tråd:<br><b>&#91;IMG&#93;$str1&#91;/IMG&#93;</b><br><br>Er billedet for stort? <a href=resize/><b>Nedskalér det</b></a></font></td></tr></table><br>";
        }
    }
echo"</p>";
echo"<center><font face=verdana size=1><a href=\"$_SERVER[PHP_SELF]\">Tilbage og upload flere filer</a></font></center>";
}else{

<br><br><br><br>
<center>
<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<input name="upfile[]" type="file" size="32" style='font-family: verdana; font-size: 8pt; background-color=#E3E3E3; border: 1px solid #000000'><br>
<input name="upfile[]" type="file" size="32" style='font-family: verdana; font-size: 8pt; background-color=#E3E3E3; border: 1px solid #000000'><br>
<input name="upfile[]" type="file" size="32" style='font-family: verdana; font-size: 8pt; background-color=#E3E3E3; border: 1px solid #000000'><br>
<input name="upfile[]" type="file" size="32" style='font-family: verdana; font-size: 8pt; background-color=#E3E3E3; border: 1px solid #000000'><br>
<input name="upfile[]" type="file" size="32" style='font-family: verdana; font-size: 8pt; background-color=#E3E3E3; border: 1px solid #000000'><br><br>

<font face=verdana size=1>Det er ikke nødvendigt at bruge alle 5 uploadfelter<br>
Hav venligst tålmodighed efter tryk på Upload.</font><br><br>

<center><input type="submit" value="Upload billede(r)" size="48" class="submit" style='font-family: verdana; font-size: 8pt; background-color=#E3E3E3; border: 1px solid #000000'><br><br>

</form>
</center>
<?php
}
?>
Avatar billede jaw Nybegynder
22. september 2005 - 20:54 #8
Så prøv:
<body bgcolor="#E4EAF2" scroll="yes">
<center><font face="Verdana" Size="4"><b>Billede upload</b></font><br></center>

<?php

if (isset($_FILES['upfile'])) {

$dist = "";

if (isset($_FILES['upfile'])) {
    $dist = "";
    for($i = 0; $i < count($_FILES['upfile']['name']); $i++) {
        if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="") {
            if(file_exists($_FILES['upfile']['name'][$i])) {
                echo "Filen eksisterer allerede";
            } else {
                if(is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
                    move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $_FILES['upfile']['name'][$i]);
                }else{
                echo"Upload til serveren skete ikke!";

    }
$str1 = $_FILES['upfile']['name'][$i];
$str2 = $_FILES['upfile']['size'][$i];
$str3 = $_FILES['upfile']['type'][$i];

echo "<table><tr><td><a href=$str1 target=_blank><img src=$str1 width=150 height=90 border=0></a></td><td><font face=verdana size=1>For at indsætte dette billede skal du kopiere følgende kode ind i din tråd:<br><b>&#91;IMG&#93;$str1&#91;/IMG&#93;</b><br><br>Er billedet for stort? <a href=resize/><b>Nedskalér det</b></a></font></td></tr></table><br>";
        }
    }
  }
}
echo"</p>";
echo"<center><font face=verdana size=1><a href=\"$_SERVER[PHP_SELF]\">Tilbage og upload flere filer</a></font></center>";
}else{
?>
<br><br><br><br>
<center>
<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<input name="upfile[]" type="file" size="32" style='font-family: verdana; font-size: 8pt; background-color=#E3E3E3; border: 1px solid #000000'><br>
<input name="upfile[]" type="file" size="32" style='font-family: verdana; font-size: 8pt; background-color=#E3E3E3; border: 1px solid #000000'><br>
<input name="upfile[]" type="file" size="32" style='font-family: verdana; font-size: 8pt; background-color=#E3E3E3; border: 1px solid #000000'><br>
<input name="upfile[]" type="file" size="32" style='font-family: verdana; font-size: 8pt; background-color=#E3E3E3; border: 1px solid #000000'><br>
<input name="upfile[]" type="file" size="32" style='font-family: verdana; font-size: 8pt; background-color=#E3E3E3; border: 1px solid #000000'><br><br>

<font face=verdana size=1>Det er ikke nødvendigt at bruge alle 5 uploadfelter<br>
Hav venligst tålmodighed efter tryk på Upload.</font><br><br>

<center><input type="submit" value="Upload billede(r)" size="48" class="submit" style='font-family: verdana; font-size: 8pt; background-color=#E3E3E3; border: 1px solid #000000'><br><br>

</form>
</center>
<?php
}
?>
Avatar billede michaelb.dk Nybegynder
22. september 2005 - 20:58 #9
Ser ud til jeg manglede et } inden }else{
Kan se du har sat første kodeeksempel anderledes op, er det rent overskuelighedsmæssigt?

Tak for hjælpen og tålmodigheden, læg et svar ind med den færdige kode, så accepterer jeg :)
Avatar billede jaw Nybegynder
22. september 2005 - 21:01 #10
Ja, jeg sætter det altid op med indryk (som jeg aldrig kan huske hvad hedder på programmeringssprog), ellers finder jeg aldrig rundt i alle de { og } man kan få kastet om sig i kampens hede :)

Og tror faktisk jeg indsatte 2 }'er i din kode + en ?>

Men hvad skal jeg indsætte som "færdige kode"? Virker det ikke, oder was?
Avatar billede michaelb.dk Nybegynder
22. september 2005 - 21:07 #11
Dette fungerer hos mig, og det var også sådan dit første kodeeksempel var sat sammen:
--------------
.......<br>Er billedet for stort? <a href=resize/><b>Nedskalér det</b></a></font></td></tr></table><br>";
        }
        }
    }
echo"</p>";
echo"<center><font face=verdana size=1><a href=\"$_SERVER[PHP_SELF]\">Tilbage og upload flere filer</a></font></center>";
}else{
?>
--------------

Tak for tippet med indrykkene!
Avatar billede jaw Nybegynder
22. september 2005 - 21:09 #12
Nu er jeg altså rigtig forvirret :)

Virker det, eller skal jeg gøre mere?
Avatar billede michaelb.dk Nybegynder
22. september 2005 - 21:11 #13
Haha, den sidste kode virker, men hvor du fjerner et } fra koden:

echo "<table><tr><td><a href=$str1 target=_blank><img src=$str1 width=150 height=90 border=0></a></td><td><font face=verdana size=1>For at indsætte dette billede skal du kopiere følgende kode ind i din tråd:<br><b>&#91;IMG&#93;$str1&#91;/IMG&#93;</b><br><br>Er billedet for stort? <a href=resize/><b>Nedskalér det</b></a></font></td></tr></table><br>";
        }
    }
}
echo"</p>";
echo"<center><font face=verdana size=1><a href=\"$_SERVER[PHP_SELF]\">Tilbage og upload flere filer</a></font></center>";
}else{
?>
Avatar billede jaw Nybegynder
22. september 2005 - 21:13 #14
Nå ja, vi kan jo alle blive ganske forvirrede af { og } :)
Avatar billede michaelb.dk Nybegynder
22. september 2005 - 21:15 #15
He, ja, og til andre brugere er det altså DENNE KODESTUMP DER FUNGERER:
-----------------------------------------------------------------------


<?php

if (isset($_FILES['upfile'])) {
    $dist = "";
    for($i = 0; $i < count($_FILES['upfile']['name']); $i++) {
        if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="") {
            if(file_exists($_FILES['upfile']['name'][$i])) {
                echo "Filen eksisterer allerede";
            } else {
                if(is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
                    move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $_FILES['upfile']['name'][$i]);
                }else{
                echo"Upload til serveren skete ikke!";
            }
                $str1 = $_FILES['upfile']['name'][$i];
                $str2 = $_FILES['upfile']['size'][$i];
                $str3 = $_FILES['upfile']['type'][$i];
                echo "$str1 blev uploadet";
            }
    }
  }
}else{

?>

<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="upfile[]" type="file"><br><br>
<input type="submit" value="Upload fil" class="submit"><br><br>
</form>

<?php
}
?>
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