Avatar billede chrisb Nybegynder
03. april 2003 - 20:46 Der er 16 kommentarer og
1 løsning

mere upload..

Jeg smider lige nogle flere point efter det script jeg fik af schaefner..
Jeg har selvfølgelig tilpasset det..

if (isset($_POST['upload'])) {
    $filtyper = array("image/gif","image/jpg","image/jpeg","image/pjpeg","application/pdf");
    if (!in_array($_FILES['upfile']['type'], $filtyper)) {
        print "<SCRIPT>alert('Ikke den slags filer!');</SCRIPT>";
    } else {
        $dist = "products/";
        $result = mysql_query("SELECT * FROM products ORDER BY id DESC LIMIT 0,1");
        $row = mysql_fetch_array($result);
        $id= $row[id]+1;
        $path = pathinfo($_FILES['upfile']['name']);
        $endelse = $path["extension"];
        $filname = "$id.$endelse";
                       
        move_uploaded_file($_FILES['upfile']['tmp_name'], $dist.$filname);
    }
    mysql_query("INSERT INTO products (name, model, type, text, file) VALUES ('$name', '$model', '$type', '$text', '$filname')");
}

Men mit nye problem er at jeg gerne vil have det til at arbejde med flere filer..
Så det eneste jeg skal ændre er faktisk min Insert query.
det gør ikke noget at filer kommer til at hedder ID_X.type hvor ID er række IDen og X er en stiende værdig afhængi af antal filer. og type er filtypen..
Jeg skal bruge dette script i 2 tilfælde.
et hvor min insert er med name, model, type, text, file1, file2 og en med text, file1, file2, file3, file4, file5
Håber det er nogen der kan hjælpe mig ud..
Avatar billede schaefner Juniormester
03. april 2003 - 20:49 #1
Ved ikke om du kan bruge sukos' multiupload-script:
http://sukos.dk/php/upload/
Avatar billede chrisb Nybegynder
03. april 2003 - 20:52 #2
Det var lige precis det jeg havde kigge på..
men jeg aner ikke hvordan man får de 2 flette sammen på en fornuftig måde... :)
Avatar billede schaefner Juniormester
03. april 2003 - 21:00 #3
Utestet:

<?php
if (isset($_POST['upload'])) {
    $filtyper = array("image/gif","image/jpg","image/jpeg","image/pjpeg","application/pdf");
    if (!in_array($_FILES['upfile']['type'], $filtyper)) {
        print "<SCRIPT>alert('Ikke den slags filer!');</SCRIPT>";
    } else {
        $dist = "products/";
        for($i=0; $i < count($fil); $i++) {
            if(isset($_FILES['upfile']['name'][$i])) {
                $result = mysql_query("SELECT * FROM products ORDER BY id DESC LIMIT 0,1");
                $row = mysql_fetch_array($result);
                $id = $row[id]+1;
                $path = pathinfo($_FILES['upfile']['name'][$i);
                $endelse = $path["extension"];
                $filname = "$id.$endelse";           
                move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist.$filname);
                mysql_query("INSERT INTO products (name, model, type, text, file) VALUES ('$name','$model','$type','$text','$filname')");
            }
        }
    }
}
?>

Så laver du dine felter sådan her:
<input type="file" name="fil[]"><br>
<input type="file" name="fil[]"><br>
<input type="file" name="fil[]">
Avatar billede schaefner Juniormester
03. april 2003 - 21:01 #4
$path = pathinfo($_FILES['upfile']['name'][$i);
skal være:
$path = pathinfo($_FILES['upfile']['name'][$i]);
Avatar billede chrisb Nybegynder
03. april 2003 - 21:11 #5
der var ikke gevinst.. :(
Avatar billede schaefner Juniormester
03. april 2003 - 22:45 #6
så prøv:

<form method="post" action="" enctype="multipart/form-data">
Hvilken fil skal uploades?<br>
<input type="file" name="upfile[]"><br>
<input type="file" name="upfile[]"><br>
<input type="file" name="upfile[]"><br>
<input type="file" name="upfile[]"><br>
<input type="file" name="upfile[]"><br>
<input type="submit" name="upload" value="Upload"">
</form>
<hr>
<?php
if (isset($_POST['upload'])) {
    $filtyper = array("image/gif","image/jpg","image/jpeg","image/pjpeg","application/pdf");
    if (!in_array($_FILES['upfile']['type'], $filtyper)) {
        print "<SCRIPT>alert('Ikke den slags filer!');</SCRIPT>";
    } else {
        $dist = "products/";
        for($i=0; $i < count($_FILES['upfile']['name']); $i++) {
            if(isset($_FILES['upfile']['name'][$i])) {
                $result = mysql_query("SELECT * FROM products ORDER BY id DESC LIMIT 0,1");
                $row = mysql_fetch_array($result);
                $id = $row[id]+1;
                $path = pathinfo($_FILES['upfile']['name'][$i);
                $endelse = $path["extension"];
                $filname = "$id.$endelse";           
                move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist.$filname);
                mysql_query("INSERT INTO products (name, model, type, text, file) VALUES ('$name','$model','$type','$text','$filname')");
            }
        }
    }
}
?>
Avatar billede chrisb Nybegynder
04. april 2003 - 10:36 #7
Den uploaded ikke noget, og men den opretter basen, men filen i basen hedder kun ID'et..
Min SQL query lyder så ledes..
INSERT INTO products (name, model, type, text, file,image) VALUES ('$name','$model','$type','$text','$filname','$filname')
Skal $filename ikke angives forskelligt? og skal den ikke være uden for "FOR" løkken?
Ikke fordi jeg vil gøre mig klog på det..
Avatar billede schaefner Juniormester
10. april 2003 - 00:21 #8
Prøv:

<?php
if (isset($_POST['upload'])) {
  $dist = "../skobilleder/";
  for($i=0; $i < count($_FILES['upfile']['name']); $i++) {
    if($_FILES['upfile']['name'] != "") {
      $path = pathinfo($_FILES['upfile']['name'][$i]);
      $ext = $path["extension"];
      $filnavn = $id.".".$ext;
      move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist.$filnavn);
      mysql_query("INSERT INTO products (name, model, type, text, file) VALUES ('$name','$model','$type','$text','$filnavn')");
    }
  }
}
?>
Avatar billede schaefner Juniormester
10. april 2003 - 00:24 #9
Hov, der mangler lige lidt ;)

<?php
if (isset($_POST['upload'])) {
  $dist = "../skobilleder/";
  for($i=0; $i < count($_FILES['upfile']['name']); $i++) {
    if($_FILES['upfile']['name'] != "") {
      $result = mysql_query("SELECT * FROM products ORDER BY id DESC LIMIT 0,1");
      $row = mysql_fetch_array($result);
      $id = $row[id]+1;
      $path = pathinfo($_FILES['upfile']['name'][$i]);
      $ext = $path["extension"];
      $filnavn = $id.".".$ext;
      move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist.$filnavn);
      mysql_query("INSERT INTO products (name, model, type, text, file) VALUES ('$name','$model','$type','$text','$filnavn')");
    }
  }
}
?>
Avatar billede chrisb Nybegynder
10. april 2003 - 12:03 #10
Ja... den er lækker..
Men jeg tror at jeg ikke forklarer mig 100%... :(
min form har 2 filer, som skal ligge i samme række f.eks en PDF og en GIF..
Avatar billede schaefner Juniormester
10. april 2003 - 12:12 #11
Hvordan skal det stå i databasen?

name: Et eller andet
model: Et eller andet
type: Et eller andet
text: Et eller andet
file: 1.gif, 1.pdf

eller hvordan?
Avatar billede schaefner Juniormester
10. april 2003 - 12:13 #12
Ellers er det det vel bare at ha to felter i tabellen. En som hedder gif og en anden der hedder pdf.
Avatar billede schaefner Juniormester
10. april 2003 - 12:28 #13
Hvis dine fleter i din tabel er således "name,model,type,text,gif,pdf," så burde du kunne sådan her:

<input type="file" name="up_gif"><br>
<input type="file" name="up_pdf">

<?php
if (isset($_POST['upload'])) {
  $dist = "../skobilleder/";
  $result = mysql_query("SELECT * FROM products ORDER BY id DESC LIMIT 0,1");
  $row = mysql_fetch_array($result);
  $id = $row[id]+1;
  if($_FILES['up_gif']['name'] != "") {
    $path = pathinfo($_FILES['up_gif']['name']);
    $ext = $path["extension"];
    $gif = $id.".".$ext;
    move_uploaded_file($_FILES['up_gif']['tmp_name'][$i], $dist.$gif);
  } else {
    echo "Væg gif-fil";
  }
  if($_FILES['up_pdf']['name'] != "") {
    $path = pathinfo($_FILES['up_pdf']['name']);
    $ext = $path["extension"];
    $pdf = $id.".".$ext;
    move_uploaded_file($_FILES['up_pdf']['tmp_name'][$i], $dist.$pdf);
  } else {
    echo "Væg pdf-fil";
  }
  mysql_query("INSERT INTO products (name,model,type,text,gif,pdf) VALUES ('$name','$model','$type','$text','$gif','$pdf')");
}
?>
Avatar billede chrisb Nybegynder
10. april 2003 - 21:36 #14
Ja du forstået mig, men dit nye script uploader ikke noget, og jeg har prøvet at ændre $dist = "../skobilleder/"; til $dist = ""; og det hjalp heller ikke..
:(
Avatar billede chrisb Nybegynder
10. april 2003 - 21:45 #15
Jeg har fundet fejlen.. :) det der lille $i i move_uploaded gjorde det grimt..
Mange takker for din hjælp, endnu engang... :)
Så hvis du vil have point, så giv mig et svar.. :P
Avatar billede schaefner Juniormester
10. april 2003 - 21:46 #16
Ja, der havde lige sneget sig en fejl ;o)
Avatar billede chrisb Nybegynder
11. april 2003 - 10:14 #17
Jeg bukker mig i støvet igen...
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