Avatar billede -zonic- Nybegynder
17. november 2007 - 22:51 Der er 9 kommentarer og
1 løsning

upload af flere filer samtidigt med mysql?

hej, jeg står og vil gerne følgende sat sammen..:

http://www.rs-invent.dk/ul/example.php

dette er selve måden hvorpå filerne findes.. det smarte er her, at man i samme arbejdsgang kan smide flere filer op på serveren. jeg vil gerne have dette script til at virke med nedenstående kode, så den både uploader de ønskede filer, og smider hver enkel fil som seperat linie i min mysql så de får et id :)

håber nogle kan hjælpe, for jeg aner ikke hvordan jeg skal gribe det an :)

koden kommer her.:

<?
$uploaddir = "filuploads/billeder/"; // Mappe til færdige billeder
$maxsize = 400; // Maximum bredde/højde
if (isset($_POST['submit']) && $_POST['submit'] == "Send Fil") {
    $source = $_FILES['upfile']['tmp_name'];
    $name = $_FILES['upfile']['name'];
    if (is_uploaded_file($source)) {
        if (tjektype($name)) {
            $dest = $uploaddir . $name;
            $dest = tjekfil($dest);
            if (move_uploaded_file($source, $dest)) {
                thumb($dest, $maxsize);
                echo "Upload ok!";
                echo "<p><img src='".$dest."' alt='billede' /></p>";
      include("includes/conn.php");
      $insertSQL = "insert into billeder (billede, kommentar, kat)
      values ('$dest', '$kommentar', '$kat')";
      mysql_query($insertSQL) or die(mysql_error()); 
            } else {
                echo "Ingen upload!";
            }
        } else {
            echo "Denne filtype er ikke tilladt at uploade!";
        }
    } else {
        echo "Ulovlig handling!";
    }
}

function Thumb($sourcefile, $size) {
    $ext = strrchr($sourcefile, '.');
    if ($ext == '.png') {
        $im = imageCreateFromPNG($sourcefile);
    } elseif ($ext == '.jpg' || $ext == '.jpeg' || $ext == '.JPG' || $ext == '.JPEG') {
        $im = imageCreateFromJPEG($sourcefile);
    }
    $source_x = imagesx($im);
    $source_y = imagesy($im);
    $delta = $size/max($source_x, $source_y);
    $dest_x = round($source_x*$delta);
    $dest_y = round($source_y*$delta);
    $target_id = imagecreatetruecolor($dest_x, $dest_y);   
    imagecopyresampled($target_id,$im,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y);
    $black = imagecolorallocate ($target_id, 0, 0, 0);
    imagecolortransparent($target_id, $black);
    if ($ext == '.png') {
        imagePNG($target_id, $sourcefile);
    } elseif ($ext == '.jpg' || $ext == '.jpeg') {
        imageJPEG($target_id, $sourcefile);
    }
}


function tjektype($filnavn) {
    $ext = strrchr($filnavn, '.');
    $tilladt = array('.jpg', '.jpeg', '.png', '.JPG', '.JPEG', '.PNG');
    if(!in_array($ext, $tilladt)) {
        return false;
    }else{
        return true;
    }
}

function tjekfil($filnavn) {
    $i = 0;
    $arr = explode(".", $filnavn);
    $ext = array_pop($arr);
    $navn = implode(".", $arr);
    $navn = str_replace(' ', '_', $navn);
    while (is_file($filnavn)) {
        $i++;
        $filnavn = $navn . "_" . sprintf("%06u", $i) . "." . $ext;
  }
    return $filnavn;
}
?>
Avatar billede 17196 Nybegynder
18. november 2007 - 00:06 #1
Ændre til:
$insertSQL = "insert into billeder (id, billede, kommentar, kat)
      values ('NULL', '$dest', '$kommentar', '$kat')";

Og tilføj:
id int(11) auto_increment
Avatar billede majbom Novice
18. november 2007 - 09:43 #2
hvis du nu retter:


$source = $_FILES['upfile']['tmp_name'];
$name = $_FILES['upfile']['name'];
if (is_uploaded_file($source)) {
if (tjektype($name)) {
    $dest = $uploaddir . $name;
    $dest = tjekfil($dest);
    if (move_uploaded_file($source, $dest)) {
    thumb($dest, $maxsize);
    echo "Upload ok!";
    echo "<p><img src='".$dest."' alt='billede' /></p>";
    include("includes/conn.php");
    $insertSQL = "insert into billeder (billede, kommentar, kat) values ('$dest', '$kommentar', '$kat')";
    mysql_query($insertSQL) or die(mysql_error()); 
    } else {
    echo "Ingen upload!";
    }
} else {
    echo "Denne filtype er ikke tilladt at uploade!";
}
} else {
    echo "Ulovlig handling!";
}

til:

for($i=0;$i<=10;$i++){
  input_field = "file_$i";
  if(!empty($_FILES[$input_field]['name'])){
      $source = $_FILES[$input_field]['tmp_name'];
      $name = $_FILES[$input_field]['name'];
      if (is_uploaded_file($source)) {
          if (tjektype($name)) {
            $dest = $uploaddir . $name;
            $dest = tjekfil($dest);
            if (move_uploaded_file($source, $dest)) {
                thumb($dest, $maxsize);
                echo "Upload ok!";
                echo "<p><img src='".$dest."' alt='billede' /></p>";
                include("includes/conn.php");
                $insertSQL = "insert into billeder (billede, kommentar, kat)
                  values ('$dest', '$kommentar', '$kat')";
                mysql_query($insertSQL) or die(mysql_error()); 
            } else {
                echo "Ingen upload!";
            }
          } else {
            echo "Denne filtype er ikke tilladt at uploade!";
          }
      } else {
          echo "Ulovlig handling!";
      }
  }
}

og du ikke har rettet i javascriptet, så burde den virke, hvis du sætter max antal "samtidige uploads" til max 10
Avatar billede majbom Novice
18. november 2007 - 09:43 #3
dette er ikke testet :)
Avatar billede jop... Nybegynder
18. november 2007 - 19:26 #4
Jeg sidder lige og leger med dette script på en side som jeg laver sammen med -Zonic-. Jeg får denne fejl når jeg bruger din rettelse:

Parse error: syntax error, unexpected '=' in /usr/home/dan11548/public_html/ul/admin_billeder_form.php on line 5

Linje 5:

input_field = "file_$i";

Nogen idéer?

//René
Avatar billede majbom Novice
18. november 2007 - 19:34 #5
ja der skal selvfølgelig et $ foran input_field :)
Avatar billede jop... Nybegynder
18. november 2007 - 19:42 #6
Ja, den havde jeg også lige findet  ;)  Takker.
Avatar billede majbom Novice
18. november 2007 - 19:48 #7
selv tak - virker det ellers?
Avatar billede jop... Nybegynder
18. november 2007 - 20:10 #8
Det ser ud til at virke lige efter hensigten. Jeg skal sørge for at du får nogle points, hvis du smider et svar  :-)
Avatar billede majbom Novice
18. november 2007 - 21:11 #9
jamen det var jo lækkert, velbekomme :)
Avatar billede -zonic- Nybegynder
19. november 2007 - 08:12 #10
mange tak for hjælpen! :)
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