Avatar billede dmy Nybegynder
28. april 2009 - 09:15 Der er 8 kommentarer og
1 løsning

Flere billeder på scriptet.

Jeg har den her billedeupload kode, som jeg endda også har fået meget hjælp til herinde.

Lige nu virker den præcis som jeg vil have den til. man kan uploade billeder, og tekst. Og selvom tekst er uploadet og man ikke ønsker et billede, indsætter den bare ikke i billeder.

Men nu vil jeg have man kan uploade flere fotos, dvs. det skal stadig være sådan at jeg også kan indsætte tekst i tabellen uden at vælge at uploade fotos, men at jeg har mulighed for at uploade et foto mere fx.

Har bare siddet med det her i flere timer og prøvet mig frem og synes godt nok det er frustrerende, når tingene ikke virker, så jeg håber der er nogen der kan hjælpe mig...  ;(


<?php

$allowedFileTypes = array('jpg','gif','png');
$uploadDir = '../pic/biler/';

//Er der trykket på Upload file knappen?
if(isset($_POST['Submit'])){
  //Har vi en fil?
  if(is_uploaded_file($_FILES['billede1']['tmp_name'])){
    //Filendelse
    $extension = strtolower(pathinfo($_FILES['billede1']['name'],PATHINFO_EXTENSION));
   
    //Er filen en af de filer vi gerne vil have?
    if(in_array($extension,$allowedFileTypes)){
        if( file_exists("../pic/biler/" . $_FILES['billede1']['name'])){
                $filnavn = substr( md5( time() ), 0, 10 ) . '_' . $_FILES['billede1']['name'];
            }else{
                $filnavn = basename($_FILES['billede1']['name']);
            }
           
   
   
      //Vi flytter filen fra tmp til vores UPLOADDIR
    if(move_uploaded_file($_FILES['billede1']['tmp_name'],$uploadDir . $filnavn))
{
         
            $overskrift = mysql_real_escape_string($_POST["overskrift"]);
            $maerke = mysql_real_escape_string($_POST["maerke"]);
            $aargang = mysql_real_escape_string($_POST["aargang"]);
            $model = mysql_real_escape_string($_POST["model"]);
            $farve = mysql_real_escape_string($_POST["farve"]);
            $km = mysql_real_escape_string($_POST["km"]);
            $pris = mysql_real_escape_string($_POST["pris"]);

          mysql_query("INSERT INTO biler (overskrift, maerke, aargang, model, farve, km, pris, billede1 ) VALUES ('".$overskrift."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$filnavn."')")or die(mysql_error());
         
        echo '<h3 style="color:green;">File ('.basename($_FILES['billede1']['name']).') Billedet blev uploadet </h3>';
      }else{
        echo '<h3 style="color:red;">Fejl - Billedet kan ikke uploades: '.basename($_FILES['billede1']['name']).'</h3>';
      }
    }else{
      echo '<h3 style="color:red;">Forkert filtype, gyldige filtyper er: ('.implode(',',$allowedFileTypes).')</h3>';
    }
  }else{
$description = mysql_real_escape_string($_POST['description']);
$overskrift = mysql_real_escape_string($_POST["overskrift"]);
$maerke = mysql_real_escape_string($_POST["maerke"]);
$aargang = mysql_real_escape_string($_POST["aargang"]);
$model = mysql_real_escape_string($_POST["model"]);
$farve = mysql_real_escape_string($_POST["farve"]);
$km = mysql_real_escape_string($_POST["km"]);
$pris = mysql_real_escape_string($_POST["pris"]);

    mysql_query("INSERT INTO biler (overskrift, maerke, aargang, model, farve, km, pris, billede1  ) VALUES ('".$overskrift."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$filnavn."')")or die(mysql_error());
echo '<h3 style="color:red;">Ingen billeder er valgt</h3>';
}
}

?>
Avatar billede jakobdo Ekspert
28. april 2009 - 09:49 #1
Du skal starte med at udbygge din form.
Den skal så i stedet for:

<input type="file" name="billede1" />
Evt. hedde:
Billede 1<input type="file" name="billede[]" />
Billede 2<input type="file" name="billede[]" />
osv... alt efter hvor mange billeder du ønsker.

Så skal upload scriptet rettes til:

<?php

$allowedFileTypes = array('jpg','gif','png');
$uploadDir = '../pic/biler/';

//Er der trykket på Upload file knappen?
if(isset($_POST['Submit'])){
  //Har vi en fil?
  for($i = 0; $i < count($_FILES['billede']); $i++){
      if(is_uploaded_file($_FILES['billede'][$i]['tmp_name'])){
        //Filendelse
        $extension = strtolower(pathinfo($_FILES['billede'][$i]['name'],PATHINFO_EXTENSION));
 
        //Er filen en af de filer vi gerne vil have?
        if(in_array($extension,$allowedFileTypes)){
                if( file_exists("../pic/biler/" . $_FILES['billede'][$i]['name'])){
                    $filnavn = substr( md5( time() ), 0, 10 ) . '_' . $_FILES['billede'][$i]['name'];
                }else{
                    $filnavn = basename($_FILES['billede'][$i]['name']);
                }

          //Vi flytter filen fra tmp til vores UPLOADDIR
            if(move_uploaded_file($_FILES['billede1']['tmp_name'],$uploadDir . $filnavn)){
                    $overskrift = mysql_real_escape_string($_POST["overskrift"]);
                    $maerke = mysql_real_escape_string($_POST["maerke"]);
                    $aargang = mysql_real_escape_string($_POST["aargang"]);
                    $model = mysql_real_escape_string($_POST["model"]);
                    $farve = mysql_real_escape_string($_POST["farve"]);
                    $km = mysql_real_escape_string($_POST["km"]);
                    $pris = mysql_real_escape_string($_POST["pris"]);

          mysql_query("INSERT INTO biler (overskrift, maerke, aargang, model, farve, km, pris, billede1 ) VALUES ('".$overskrift."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$filnavn."')")or die(mysql_error());
       
            echo '<h3 style="color:green;">File ('.basename($_FILES['billede'][$i]['name']).') Billedet blev uploadet </h3>';
          }else{
            echo '<h3 style="color:red;">Fejl - Billedet kan ikke uploades: '.basename($_FILES['billede'][$i]['name']).'</h3>';
          }
        }else{
          echo '<h3 style="color:red;">Forkert filtype, gyldige filtyper er: ('.implode(',',$allowedFileTypes).')</h3>';
        }
      }else{
            $description = mysql_real_escape_string($_POST['description']);
            $overskrift = mysql_real_escape_string($_POST["overskrift"]);
            $maerke = mysql_real_escape_string($_POST["maerke"]);
            $aargang = mysql_real_escape_string($_POST["aargang"]);
            $model = mysql_real_escape_string($_POST["model"]);
            $farve = mysql_real_escape_string($_POST["farve"]);
            $km = mysql_real_escape_string($_POST["km"]);
            $pris = mysql_real_escape_string($_POST["pris"]);
   
        mysql_query("INSERT INTO biler (overskrift, maerke, aargang, model, farve, km, pris, billede1  ) VALUES ('".$overskrift."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$filnavn."')")or die(mysql_error());
            echo '<h3 style="color:red;">Ingen billeder er valgt</h3>';
        }
    }
}

?>
Avatar billede dmy Nybegynder
28. april 2009 - 10:04 #2
Det er så hvis jeg skal have uploadet som f.eks i et galleri.

Hvad hvis jeg i tabellen har en der hedder billede1 og en der hedder billede2?
Avatar billede jakobdo Ekspert
28. april 2009 - 10:19 #3
Så kan du "bare" tilføje et ekstra type="file" name="billede2"

Og kalde upload koden 2 gange, og rette billede1 til billede2.
Avatar billede dmy Nybegynder
28. april 2009 - 10:21 #4
okey super ;-) tak .. jeg prøver
Avatar billede dmy Nybegynder
28. april 2009 - 11:19 #5
Jeg har prøvet mig frem og synes noget af det her var det tætteste jeg kunne komme, forstår ikke helt syntaxen, hvordan man "kan" skrive det, hmm noget er ihvartfald helt galt, siden vises ikke.

                  <?php

$allowedFileTypes = array('jpg','gif','png');
$uploadDir = '../pic/biler/';

//Er der trykket på Upload file knappen?
if(isset($_POST['Submit'])){
  //Har vi en fil?
  if(is_uploaded_file($_FILES['billede1']['tmp_name']&& $_FILES['billede2']['tmp_name'] )){
    //Filendelse
    $extension = strtolower(pathinfo($_FILES['billede1']['name'],PATHINFO_EXTENSION && $_FILES['billede2']['name'],PATHINFO_EXTENSION);
   
   
    //Er filen en af de filer vi gerne vil have?
    if(in_array($extension,$allowedFileTypes)){
        if( file_exists("../pic/biler/" . $_FILES['billede1']['name'] && $_FILES['billede2']['name'] )){
                $filnavn = substr( md5( time() ), 0, 10 ) . '_' . $_FILES['billede1']['name'] && $_FILES['billede2']['name'];
            }else{
                $filnavn = basename($_FILES['billede1']['name']&& $_FILES['billede2']['name']);
            }
           
   
           
   
   
      //Vi flytter filen fra tmp til vores UPLOADDIR
    if(move_uploaded_file($_FILES['billede1'] && $_FILES['billede1']['tmp_name'],$uploadDir . $filnavn) )
{
         
            $overskrift = mysql_real_escape_string($_POST["overskrift"]);
            $maerke = mysql_real_escape_string($_POST["maerke"]);
            $aargang = mysql_real_escape_string($_POST["aargang"]);
            $model = mysql_real_escape_string($_POST["model"]);
            $farve = mysql_real_escape_string($_POST["farve"]);
            $km = mysql_real_escape_string($_POST["km"]);
            $pris = mysql_real_escape_string($_POST["pris"]);

          mysql_query("INSERT INTO biler (overskrift, maerke, aargang, model, farve, km, pris, billede1, billede2 ) VALUES ('".$overskrift."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$filnavn."', '".$filnavn."')")or die(mysql_error());
         
        echo '<br /><div id="nyhed_rettet">File ('.basename($_FILES['billede1']['name']).') Billedet blev uploadet </div>';
      }else{
        echo '<br /><div id="nyhed_rettet">Fejl - Billedet kan ikke uploades: '.basename($_FILES['billede1']['name']).'</div>';
      }
    }else{
      echo '<br /><div id="nyhed_rettet">Forkert filtype, gyldige filtyper er: ('.implode(',',$allowedFileTypes).')</div>';
    }
  }else{
$description = mysql_real_escape_string($_POST['description']);
$overskrift = mysql_real_escape_string($_POST["overskrift"]);
$maerke = mysql_real_escape_string($_POST["maerke"]);
$aargang = mysql_real_escape_string($_POST["aargang"]);
$model = mysql_real_escape_string($_POST["model"]);
$farve = mysql_real_escape_string($_POST["farve"]);
$km = mysql_real_escape_string($_POST["km"]);
$pris = mysql_real_escape_string($_POST["pris"]);

    mysql_query("INSERT INTO biler (overskrift, maerke, aargang, model, farve, km, pris, billede1, billede2  ) VALUES ('".$overskrift."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$filnavn."', '".$filnavn."')")or die(mysql_error());
echo '<br /><div id="nyhed_rettet">Informationer er gemt, ingen billeder var valgt</div>';
}
}

?>
Avatar billede jakobdo Ekspert
28. april 2009 - 11:47 #6
Så er der nok en fejl.
Jeg tror desværre du må satse på at lære lidt mere selv.
Jeg servere stort set tingene på et sølvfad til dig gang på gang.
Og du bør kunne finde små fejl selv.
Har du error reporting aktiveret på din server ?
Avatar billede dmy Nybegynder
28. april 2009 - 15:43 #7
Ja jeg finder det vel nok,
nej det tror jeg ikke jeg har, jeg bruger one.com

Tak for hjælpen, Smid et svar
Avatar billede jakobdo Ekspert
28. april 2009 - 21:10 #8
Svar!
Avatar billede jakobdo Ekspert
29. april 2009 - 10:14 #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