Avatar billede MarkA Praktikant
17. april 2006 - 16:01 Der er 6 kommentarer og
1 løsning

Upload af billeder til min hp

Jeg er ved at lave et script til at man kna uploade fx 2 billeder pr bruger. Jeg kan sagtens få den til at uploade 1 billede, men hvis nu jeg vil uploade 2 eller flere hvordan gør jeg så her er mine koder

---------------
upload.php
---------------

<form action='do_upload.php' method='post' enctype='multipart/form-data'>
Profilbillede 1: <input type='file' name='img1'><input type='submit' value='Upload'>


<form action='do_upload.php' method='post' enctype='multipart/form-data'>
Profilbillede 2: <input type='file' name='img2'><input type='submit' value='Upload'>



---------------
do_upload.php
---------------
<?
session_start();

$brugernavn = $_SESSION['brugernavn'];
//Filens midlertidige placering
$file=$_FILES['img1']['tmp_name'];

//Filens endelse
$ext=strrchr($_FILES['img1']['name'],'.');
$ext=strtolower($ext);

//Laver alle mellemrum om til underscore i fil navnet
$name=$_FILES['img1']['name'];
$name=str_replace(" ", '_', $name);

//Destination
$path="billeder/" . $brugernavn. "_" . "1" . $ext;

//Flytter filen fra dets midlertidige placering til den definerede placering
move_uploaded_file($file, $path);

//Rettigerheder (chmodding)
chmod($path, 0644);

//Sender os tilbage til upload siden
header("location: index.php");
?>
Avatar billede coderdk Praktikant
17. april 2006 - 16:15 #1
---------------
upload.php
---------------

<form action='do_upload.php' method='post' enctype='multipart/form-data'>
Profilbillede 1: <input type='file' name='img[]'><br>
Profilbillede 2: <input type='file' name='img[]'><input type='submit' value='Upload'>

---------------
do_upload.php
---------------
<?
session_start();

$brugernavn = $_SESSION['brugernavn'];

foreach( $_FILES['img'] as $fil )
{
  if ( is_uploaded_file( $fil['tmp_name'] ) )
  {
      //Filens midlertidige placering
      $file=$fil['tmp_name'];
      //Filens endelse
      $ext=strrchr($fil['name'],'.');
      $ext=strtolower($ext);

      //Laver alle mellemrum om til underscore i fil navnet
      $name=$fil['name'];
      $name=str_replace(" ", '_', $name);

      //Destination
      $path="billeder/" . $brugernavn. "_" . "1" . $ext;

      //Flytter filen fra dets midlertidige placering til den definerede placering
      move_uploaded_file($file, $path);

      //Rettigerheder (chmodding)
      chmod($path, 0644);
      //Sender os tilbage til upload siden
  }
}
header("location: index.php");
?>
Avatar billede MarkA Praktikant
17. april 2006 - 23:20 #2
Det kan jeg ikke få til at virke... den kører koden igennem, men den ligger ikke billederne i mappen. grunden til at der står "1"
i denne linie:
$path="billeder/" . $brugernavn. "_" . "1" . $ext;

er fordi det skulle være billede 1.
Det er for at der skal være fx 4 billeder der hedder: .$brugernavn . "_" . "1"
.$brugernavn . "_" . "2"
.$brugernavn . "_" . "3"
.$brugernavn . "_" . "4"

så den automatisk på en anden side viser de 4 billeder.

Og undskyld det sene svar, men mit internet har været gået ned
Avatar billede coderdk Praktikant
17. april 2006 - 23:55 #3
Dvs. den uploader ikke engang den ene fil? Altså der kommer ikke en der hedder "billeder/" . $brugernavn. "_" . "1" . $ext ?
Avatar billede coderdk Praktikant
18. april 2006 - 00:04 #4
Kan godt være jeg har fået en hjerneblødning, testede lige lidt. Prøv dette i do_upload.php:

<?
session_start();

$brugernavn = $_SESSION['brugernavn'];

$c = 1;
$n = count( $_FILES['img']['tmp_name'] );
for ( $i = 0; $i < $n; $i++ )
{
  if ( is_uploaded_file( $_FILES['img']['tmp_name'][$i] ) )
  {
      //Filens midlertidige placering
      $file=$_FILES['img']['tmp_name'][$i];
      //Filens endelse
      $ext=strrchr($_FILES['img']['name'][$i],'.');
      $ext=strtolower($ext);

      //Laver alle mellemrum om til underscore i fil navnet
      $name=$_FILES['img']['name'][$i];
      $name=str_replace(" ", '_', $name);

      //Destination
      $path="billeder/" . $brugernavn. "_" . $c . $ext;
      $c++;

      //Flytter filen fra dets midlertidige placering til den definerede placering
      move_uploaded_file($file, $path);

      //Rettigerheder (chmodding)
      chmod($path, 0644);
      //Sender os tilbage til upload siden
  }
}

header("location: index.php");
?>
Avatar billede MarkA Praktikant
19. april 2006 - 21:10 #5
Tak... så virker det...
Jeg kunne godt tænke mig hvis man kan nøjes med at uploade et billede så man kan ændre f.eks. billede 2 uden at skulle lægge et billede 1 ind..

Det skal forstås sådan at man ser en side med 4 billeder på og med en upload form med 4 felter under. De skal hedde img1 img2 img3 img4.

Håber det er forståeligt
Avatar billede coderdk Praktikant
19. april 2006 - 23:06 #6
Prøv:

<form action='do_upload.php' method='post' enctype='multipart/form-data'>
Profilbillede 1: <input type='file' name='img1'><br>
Profilbillede 2: <input type='file' name='img2'><br>
Profilbillede 3: <input type='file' name='img3'><br>
Profilbillede 4: <input type='file' name='img4'><input type='submit' value='Upload'>

og:

<?
session_start();

$brugernavn = $_SESSION['brugernavn'];

for ( $i = 1; $i < 5; $i++ )
{
  if ( is_uploaded_file( $_FILES["img$i"]['tmp_name'] ) )
  {
      //Filens midlertidige placering
      $file=$_FILES["img$i"]['tmp_name'];
      //Filens endelse
      $ext=strrchr($_FILES["img$i"]['name'],'.');
      $ext=strtolower($ext);

      //Laver alle mellemrum om til underscore i fil navnet
      $name=$_FILES["img$i"]['name'];
      $name=str_replace(" ", '_', $name);

      //Destination
      $path="billeder/" . $brugernavn. "_" . $i . $ext;

      //Flytter filen fra dets midlertidige placering til den definerede placering
      move_uploaded_file($file, $path);

      //Rettigerheder (chmodding)
      chmod($path, 0644);
      //Sender os tilbage til upload siden
  }
}

header("location: index.php");
?>
Avatar billede MarkA Praktikant
19. april 2006 - 23:19 #7
Så siger jeg tak for hjælpen. Det var rart at få det til at virke. :)
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