Avatar billede dmy Nybegynder
23. marts 2009 - 18:17 Der er 10 kommentarer og
1 løsning

Billedeupload hjælp!

Jeg har en billedeupload, som automatisk omdøber et billede hvis navnet finde i forevejen, men mit problem er at den skal vælge et default billede, hvis intet billede er valgt, lige nu brygger den kun en masse volapyk hvis der ingen billede er valg, og det skal den jo ikke.

Hvordan får jeg smækket en kode ind som siger den skal vælge default.jpg hvis intet er valgt, men stadig beholde den kode med at den omdøber hvis et navn allede er taget?



Min upload kode:

$fil_navn = "";
    if( file_exists("pic/biler/" . $_FILES["billede1"]["name"]))
    {
        $fil_navn = substr( md5( time() ), 0, 10 ) . $_FILES["billede1"]["name"];
    }
    else
    {
        $fil_navn = $_FILES["billede1"]["name"];
    }
    move_uploaded_file( $_FILES["billede1"]["tmp_name"], "pic/biler/" . $fil_navn );
Avatar billede andreas13_fam Nybegynder
23. marts 2009 - 19:18 #1
Jeg vil mene at det kan gøres med if ($_FILES['input_name'])

if ($_FILES['billede1']) // hvis der er uploadet noget
{
    if( file_exists("pic/biler/" . $_FILES["billede1"]["name"]))
    {
        $fil_navn = substr( md5( time() ), 0, 10 ) . $_FILES["billede1"]["name"];
    }
    else
    {
        $fil_navn = $_FILES["billede1"]["name"];
    }
    move_uploaded_file( $_FILES["billede1"]["tmp_name"], "pic/biler/" . $fil_navn );
}
else // hvis der ikke er uploadet noget
{
$fil_navn = "default.jpg";
}
Avatar billede zynzz Praktikant
23. marts 2009 - 19:23 #2
Gætter på det er således du ønsker det:

if(isset($_FILES['billede1']))
{
    // DIN KODE
}else{
    $fil_navn = "default.jpg";
}

Gætter også på at informationerne bliver gemt i en database

Hvis jeg har skudt helt ved siden af, ønskes mere info...
Avatar billede dmy Nybegynder
23. marts 2009 - 19:45 #3
Hmm det virker ikke rigtig

hele min kode ser sådan her ud

$km = $_POST["km"];
$pris = $_POST["pris"];
$billede1 = $_POST["billede1"];


$fil_navn = "";
    if( file_exists("pic/biler/" . $_FILES["billede1"]["name"]))
    {
        $fil_navn = substr( md5( time() ), 0, 10 ) . $_FILES["billede1"]["name"];
    }
    else
    {
        $fil_navn = $_FILES["billede1"]["name"];
    }
    move_uploaded_file( $_FILES["billede1"]["tmp_name"], "pic/biler/" . $fil_navn );

   
    // gem billede

mysql_query("INSERT INTO jph_biler (overskrift, beskrivelse, maerke, aargang, model, farve, km, pris, billede1) VALUES ('".$overskrift."', '".$beskrivelse."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$fil_navn."')")or die(mysql_error());

echo "Din salgsannonce for $overskrift, er nu oprettet";

}
?>
<form id="form1" name="form1" method="post" enctype="multipart/form-data" action="">
    <table width="400" height="205" border="0" cellpadding="" cellspacing="1">
  <tr>
           
              <td><input name="overskrift" type="text" id="overskrift" /></td>
        </tr>
        <tr>
           
            <td><textarea name="beskrivelse" type="text" rows="15" cols="50" id="beskrivelse" /></textarea></td>
        </tr>
        <tr>
            <td"></td>
            <td><input type="file" name="billede1" /></td>
        </tr>
        <tr>
            <td><input name="maerke" type="text" id="maerke" />Mærke</td>
        </tr>
        <tr>
            <td><input name="aargang" type="text" id="aargang" />årgang</td>
        </tr>
        <tr>
           
            <td><input name="model" type="text" id="model" />model</td>
        </tr>
        <tr>
                 
            <td><input name="farve" type="text" id="farve" />farve</td>
        </tr>
        <tr>
            <td><input name="km" type="text" id="km" />km</td>
        </tr>
        <tr>
       
            <td><input name="pris" type="text" id="pris" />pris</td>
        </tr>
        <tr>
              <td><input type="submit" name="Submit" value="Tilføj nyt" /></td>
        </tr>
    </table>
    </form>
Avatar billede dmy Nybegynder
23. marts 2009 - 19:46 #4
fik ikk lige toppen med men det gør vel heller ikk så meget...
Avatar billede labisama Nybegynder
23. marts 2009 - 20:05 #5
Så vidt jeg kan se, så bytter du rundt på dine if-sætninger.

Dvs.

if( file_exists("pic/biler/" . $_FILES["billede1"]["name"]))
    {
      //her skal du sætte default.jpg
    }
    else
    {
      //her skal din uploade kode i gang.
    }

Eller har jeg misforstået dig?
Avatar billede dmy Nybegynder
23. marts 2009 - 20:08 #6
Det forstår jeg ikke.

Hvis intet er uploadet skal default.jpg træde til, og hvis man uploader et fil navn som eksistere i mappen i forvejen, skal den kode med md5 sætte igang.

ellers skal billedet bare uploades.
Avatar billede andreas13_fam Nybegynder
23. marts 2009 - 20:19 #7
prøv at udskrive $fil_navn: Når du intet oploader og når du oploader.
Personligt syntes jeg også at det er en god ide at se om personen har forsøgt at sende en form, så der ikke bare indsætter "".

Det kan man gøre med fx:
<?php
if ($_GET['send'] == "form")
{
  if (/*alt vailder*/)
  {
    if(isset($_FILES['billede1'])
    {
      if( file_exists("pic/biler/" . $_FILES["billede1"]["name"]))
      {
      $fil_navn = substr( md5( time() ), 0, 10 ) . $_FILES["billede1"]["name"];
      }
      else
      {
      $fil_navn = $_FILES["billede1"]["name"];
      }
      move_uploaded_file( $_FILES["billede1"]["tmp_name"], "pic/biler/" . $fil_navn );
    }
    else
    {
    $fil_navn = "default.jpg";
    }
  //din mysql
  }
  else
  {
  //der er sket noget som ikke var rigtigt.
  }
}
?>
<form action="dinside.php?send=form">
...
</form>
Avatar billede labisama Nybegynder
23. marts 2009 - 20:20 #8
Jamen så burde de tidligere forslag godt kunne bruges.

Bl.a.

if ($_FILES['billede1']) // hvis der er uploadet noget
{
    if( file_exists("pic/biler/" . $_FILES["billede1"]["name"])) // tjekker om fil med samme navn findes
    {
        $fil_navn = substr( md5( time() ), 0, 10 ) . $_FILES["billede1"]["name"]; // Findes det, så lav nyt filnavn
    }
    else
    {
        $fil_navn = $_FILES["billede1"]["name"]; // Ellers behold filnavnet
    }
    move_uploaded_file( $_FILES["billede1"]["tmp_name"], "pic/biler/" . $fil_navn ); //Flyt den uploadede fil fra tmp til din valgte sti.
}
else // Eller hvis der ikke er uploadet noget
{
$fil_navn = "default.jpg"; // så indeholder $fil_navn default.jpg
}

Har skrevet lidt ekstra kommentarer.
Avatar billede showsource Seniormester
24. marts 2009 - 08:08 #9
Brug
is_uploaded_file($_FILES["billede1"]["tmp_name"])
til at tjekke om der er valgt en fil.
og
is_file() i stedet for file_exists()
Avatar billede dmy Nybegynder
22. april 2009 - 08:23 #10
smid lige et svar
Avatar billede andreas13_fam Nybegynder
22. april 2009 - 11:59 #11
Det må være en deler
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