Avatar billede Slettet bruger
13. november 2009 - 13:19 Der er 6 kommentarer og
1 løsning

Uploader af 2 filer

Hej.

Har bøvlet lidt med dette her script som uploader 1 fil og smider filnavnet i min database (samt overskrift og beskrivelse)....

Vil meget gerne have den til at uploade 2 filer, samt skrive filnavnet fra begge filer til databasen... Kan ikke rigtigt få det til at funke...
Filchecket som er lavet behøver jeg ikke bruge, hvis det gør det sværere at lave...

Nogen der kan hjælpe mig?

<?php
$host = "x";
$user = "x";
$pass = "x";
$db  = "x";
$connection = mysql_connect($host,$user,$pass);
mysql_select_db("$db");


if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 2000000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);
      $picName = $_FILES['file']['name'];
$sql = "INSERT INTO show_nyheder (filnavn, dato, overskrift, beskrivelse, kategori) VALUES('$picName', NOW(), '$_POST[overskrift]', '$_POST[beskrivelse]', '$_POST[kategori]');";
      mysql_query($sql); // Sender sql sætnignen til MySQL databasen
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>
Avatar billede repox Seniormester
13. november 2009 - 13:31 #1
Du skal angive dine <input type="file"> elementers name attribut som et array. F.eks ved at skrive:

<input type="file" name="file[]" />
<input type="file" name="file[]" />


Når de så kommer i dit script kan du tilgå dem således:


<?php
  $noFiles = count($_FILES["file"]["name"]);
  for($i = 0; $i < $noFiles; $i++)
  {
    her skal din oprindelige kode stå.
    Når du så skal tilgå de enkelte filer gør du det således
    $_FILES["file"]["type"][$i] hvor $i er nummeret på den aktuelle fil
    Og det samme gør sig gældende for name, temp_name, size og så videre:
    $_FILES["file"]["name"][$i]
    $_FILES["file"]["tmp_name"][$i]
  }
?>

Avatar billede Slettet bruger
13. november 2009 - 13:59 #2
Mange tak og super fedt du lige lavede kommentar til....
Jeg prøver.. :-)
Avatar billede Slettet bruger
17. november 2009 - 19:26 #3
Hej...
Jeg kan ikke rigtigt få det til at virke, har prøvet lidt frem og tilbage.

Den kommer bare med følgende:
Stored in: upload/ og så ligger der ingen filer.

Jeg har følgende kode:

<html>
<body>

<form action="uploadp.php" method="post" enctype="multipart/form-data">

<p>Upload filer:<br>
<input type="file" name="minfil[]"><br>
<input type="file" name="minfil[]"><br>


Overskrift:<input type="text" name="overskrift"/><br><br>

Beskrivelse:<input type="text" name="beskrivelse"/><br><br>

</p>

<input type="submit" name="submit" value="Upload" />
</form>
</body>
</html>



<?php
$host = "x";
$user = "x";
$pass = "x";
$db  = "x";
$connection = mysql_connect($host,$user,$pass);
mysql_select_db("$db");

$uploads_dir = 'upload/';

  $noFiles = count($_FILES["file"]["name"]);  for($i = 0; $i < $noFiles; $i++)  {
   
    echo "Upload: " . $_FILES["file"]["name"][$i] . "<br />";
    echo "Type: " . $_FILES["file"]["type"][$i] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"][$i] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"][$i] . "<br />";

    if (file_exists("upload/" . $_FILES["file"]["name"][i]))
      {
      echo $_FILES["file"]["name"][i] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"][i],"upload/" . $_FILES["file"]["name"][i]);
      $picName = $_FILES['file']['name'][i];
    }

}
     
$sql = "INSERT INTO show_nyheder (filnavn, dato, overskrift, beskrivelse, kategori) VALUES('$picName', NOW(), '$_POST[overskrift]', '$_POST[beskrivelse]', '$_POST[kategori]');";
      mysql_query($sql); // Sender sql sætnignen til MySQL databasen
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];

?>
Avatar billede Slettet bruger
17. november 2009 - 21:10 #4
Fandt fejlen.. Det var navnet jeg ikke lige havde fået ændret... Ups.. :-)

Men kom videre og nu får jeg følgende fejl:

Upload: hyggesep (21).jpg
Type: image/pjpeg
Size: 146.010742188 Kb
Temp file: /var/www/clients/client1/web1/tmp/phpulMOEy
already exists. Upload: hyggesep (28).jpg
Type: image/pjpeg
Size: 29.9423828125 Kb
Temp file: /var/www/clients/client1/web1/tmp/phptPZ8Pz
already exists. Stored in: upload/

Den siger at filen allerede eksisterer i upload og det gør den ikke...
Avatar billede Slettet bruger
17. november 2009 - 21:33 #5
Det funker... wuhuuuuuu.. :-)

Send bare svar, du hjalp mig godt på vej... Fedt..
Avatar billede repox Seniormester
17. november 2009 - 22:14 #6
Jamen, jeg er glad for at du fik det til at virke. :)
Avatar billede Slettet bruger
18. november 2009 - 12:52 #7
Yeeees sir :-)
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