Avatar billede fjammi Nybegynder
01. februar 2005 - 22:25 Der er 6 kommentarer og
1 løsning

Flere upload på én gang

Hej

Jeg har fundet dette script her på eksperten og det fungere fint, men jeg vil gerne have så jeg kan uploade 5 billeder af gange.

Er der en der kan forklare/vise hvordan jeg kan lave det???

##Scriptet##
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
</head>

<body>
<?
if(isset($_REQUEST['send'])) {

$upload_bibliotek = "images";

$fra = $_FILES["img"]["tmp_name"];
$oprindeligtnavn = $_FILES["img"]["name"];

$til1 = $upload_bibliotek . "/" . $_FILES["img"]["name"];
$til2 = $upload_bibliotek . "/thumb/" . $_FILES["img"]["name"];

$size = getimagesize($_FILES["img"]['tmp_name']);

//Udregn skaleringsforholdet på thumb, her skal 150 rettes til den ønskede bredde
$new_w = 300;
$division = $size[0] / $new_w;
$new_h = $size[1] / $division;

//Lav et nyt billede så vi kan komme igang
$dst_img = ImageCreateTrueColor($size[0],$size[1]);

//Lav et nyt billede til thumbnail så vi kan komme igang
$dst_img2 = ImageCreateTrueColor($new_w,$new_h);

//Find ud af filformat, hvor $_FILES["img"] er navnet for input feltet i din form
if($_FILES["img"]["type"] == "image/jpeg" || $_FILES["img"]["type"] == "image/pjpeg" || $_FILES["img"]["type"] == "image/jpg") {
$src_img = ImageCreateFromJpeg($_FILES["img"]['tmp_name']);
} elseif($_FILES["img"]["type"] == "image/x-png" || $_FILES["img"]["type"] == "image/png") {
$src_img = ImageCreateFromPng($_FILES["img"]['tmp_name']);
} elseif($_FILES["img"]["type"] == "image/gif") {
$src_img = ImageCreateFromGif($_FILES["img"]['tmp_name']);
}

//Smid noget indhold i billedet
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$size[0],$size[1],ImageSX($src_img),ImageSY($src_img));

//Smid noget indhold i, og resize thumbnail
ImageCopyResampled($dst_img2,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));

//*nix-path til filens endelige placering
$filename1 = $til1;

//*nix-path til thumbnailens endelige placering
$filename2 = $til2;

//Udfør det hele på billedet
if($_FILES["img"]["type"] == "image/jpeg" || $_FILES["img"]["type"] == "image/pjpeg" || $_FILES["img"]["type"] == "image/jpg") {
ImageJpeg($dst_img, $filename1);
} elseif($_FILES["img"]["type"] == "image/x-png" || $_FILES["img"]["type"] == "image/png") {
ImagePng($dst_img, $filename1);
} elseif($_FILES["img"]["type"] == "image/gif") {


if(function_exists("move_uploaded_file")) {
move_uploaded_file($fra, $til1);
} else {
copy($fra, $til1);
}
}

//Udfør det hele på thumbnailen
if($_FILES["img"]["type"] == "image/jpeg" || $_FILES["img"]["type"] == "image/pjpeg" || $_FILES["img"]["type"] == "image/jpg") {
ImageJpeg($dst_img2, $filename2);
} elseif($_FILES["img"]["type"] == "image/x-png" || $_FILES["img"]["type"] == "image/png" || $_FILES["img"]["type"] == "image/gif") {
ImagePng($dst_img2, $filename2);
}
}

?>

<form name="form1" enctype="multipart/form-data" method="post" action="test.php">
<input type="hidden" name="send" value="ok">
<input type="file" name="img" class="file" style="width:250px"><input type="submit" class="knap"  value="Upload valgt billede">
</form>

</body>
</html>

På forhånd tak
Avatar billede hmortensen Nybegynder
02. februar 2005 - 00:45 #1
Nu har jeg ikke igget hele din kode igennem, men blot rettet hvor jeg lige kunne se der skulle rettes:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
</head>

<body>
<?
if(isset($_POST['send'])) {

$upload_bibliotek = "images";

for ($x=0;$x<count($_FILES['img']['name']);$x++)
{
$fra = $_FILES["img"]["tmp_name"][$x];
$oprindeligtnavn = $_FILES["img"]["name"][$x];

$til1 = $upload_bibliotek . "/" . $_FILES["img"]["name"][$x];
$til2 = $upload_bibliotek . "/thumb/" . $_FILES["img"]["name"][$x];

$size = getimagesize($_FILES["img"]['tmp_name'][$x]);

//Udregn skaleringsforholdet på thumb, her skal 150 rettes til den ønskede bredde
$new_w = 300;
$division = $size[0] / $new_w;
$new_h = $size[1] / $division;

//Lav et nyt billede så vi kan komme igang
$dst_img = ImageCreateTrueColor($size[0],$size[1]);

//Lav et nyt billede til thumbnail så vi kan komme igang
$dst_img2 = ImageCreateTrueColor($new_w,$new_h);

//Find ud af filformat, hvor $_FILES["img"] er navnet for input feltet i din form
if($_FILES["img"]["type"][$x] == "image/jpeg" || $_FILES["img"]["type"][$x] == "image/pjpeg" || $_FILES["img"]["type"][$x] == "image/jpg") {
$src_img = ImageCreateFromJpeg($_FILES["img"]['tmp_name'][$x]);
} elseif($_FILES["img"]["type"][$x] == "image/x-png" || $_FILES["img"]["type"][$x] == "image/png") {
$src_img = ImageCreateFromPng($_FILES["img"]['tmp_name'][$x]);
} elseif($_FILES["img"]["type"][$x] == "image/gif") {
$src_img = ImageCreateFromGif($_FILES["img"]['tmp_name'][$x]);
}

//Smid noget indhold i billedet
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$size[0],$size[1],ImageSX($src_img),ImageSY($src_img));

//Smid noget indhold i, og resize thumbnail
ImageCopyResampled($dst_img2,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));

//*nix-path til filens endelige placering
$filename1 = $til1;

//*nix-path til thumbnailens endelige placering
$filename2 = $til2;

//Udfør det hele på billedet
if($_FILES["img"]["type"][$x] == "image/jpeg" || $_FILES["img"]["type"][$x] == "image/pjpeg" || $_FILES["img"]["type"][$x] == "image/jpg") {
ImageJpeg($dst_img, $filename1);
} elseif($_FILES["img"]["type"][$x] == "image/x-png" || $_FILES["img"]["type"][$x] == "image/png") {
ImagePng($dst_img, $filename1);
} elseif($_FILES["img"]["type"][$x] == "image/gif") {


if(function_exists("move_uploaded_file")) {
move_uploaded_file($fra, $til1);
} else {
copy($fra, $til1);
}
}

//Udfør det hele på thumbnailen
if($_FILES["img"]["type"][$x] == "image/jpeg" || $_FILES["img"]["type"][$x] == "image/pjpeg" || $_FILES["img"]["type"][$x] == "image/jpg") {
ImageJpeg($dst_img2, $filename2);
} elseif($_FILES["img"]["type"][$x] == "image/x-png" || $_FILES["img"]["type"][$x] == "image/png" || $_FILES["img"]["type"][$x] == "image/gif") {
ImagePng($dst_img2, $filename2);
}
}
}

?>

<form name="form1" enctype="multipart/form-data" method="post" action="test.php">
<input type="hidden" name="send" value="ok">
1)<br>
<input type="file" name="img[]" class="file" style="width:250px"><br>
2)<br>
<input type="file" name="img[]" class="file" style="width:250px"><br>
3)<br>
<input type="file" name="img[]" class="file" style="width:250px"><br>
4)<br>
<input type="file" name="img[]" class="file" style="width:250px"><br>
5)<br>
<input type="file" name="img[]" class="file" style="width:250px"><br>
<input type="submit" class="knap"  value="Upload valgt billede">
</form>

</body>
</html>


Som du kan se hedder felterne img[], som laver et array.
Hvis det ikke virker, må jeg lige prøve at omskrive din kode, for den er lidt uoverskuelig.
Avatar billede fjammi Nybegynder
02. februar 2005 - 01:00 #2
<input type="file" name="img[" class="file" style="width:250px">
Mangler der ikke en ] i koden? så det bliver img[]
Men selvom jeg retter det virker det ik
Avatar billede hmortensen Nybegynder
02. februar 2005 - 01:02 #3
Jo, det skal være img[]
Hvis jeg får tid, skal jeg prøve at omskrive koden i morgen.
Avatar billede fjammi Nybegynder
02. februar 2005 - 01:04 #4
ok tak
problemet start omkring her $dst_img = ImageCreateTrueColor($size[0],$size[1]);

Den uploader fint billederne men der kommer en masse fejlbeskeder
Avatar billede fjammi Nybegynder
02. februar 2005 - 01:10 #5
Du behøver ikke rette scriptet til for kan godt bruge det som det er nu, for skal ik bruge det oprindelige billede til noget, og når man fjerne den kode virker det.
Tak for hjælpen - Lig et svar så du kan få dine point
Avatar billede hmortensen Nybegynder
02. februar 2005 - 02:23 #6
Og til en anden gang. Når man navngiver sit felt med [], laver den som sagt et array, og vores data ligger allerede i et 2d array, som nu bliver udvidet til et 3d array.

Du kan prøve den her kode stump, så du kan se hvordan din data ren faktisk ligger:

<?php
if (isset($_POST['send']))
{
  echo "<pre>";
  print_r($_FILES);
  echo "</pre>";
}
?>
<form name="form1" enctype="multipart/form-data" method="post" action="">
<input type="hidden" name="send" value="ok">
1)<br>
<input type="file" name="img[" class="file" style="width:250px"><br>
2)<br>
<input type="file" name="img[" class="file" style="width:250px"><br>
3)<br>
<input type="file" name="img[" class="file" style="width:250px"><br>
4)<br>
<input type="file" name="img[" class="file" style="width:250px"><br>
5)<br>
<input type="file" name="img[" class="file" style="width:250px"><br>
<input type="submit" class="knap"  value="Upload valgt billede">
</form>
Avatar billede fjammi Nybegynder
02. februar 2005 - 02:38 #7
ja ok
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