Avatar billede homsabu Nybegynder
21. december 2003 - 20:49 Der er 3 kommentarer og
1 løsning

Omkodning af script

Hej Eksperter.

Jeg har fundet følgende script. Er der en der gider at omskrive det så man kan uploade flere billeder af gangen?!?!?
--------------------
//billedupload.php

<form enctype="multipart/form-data" action="billeduploadok.php" method="post">
<table cellspacing="2" cellpadding="2" border="0">

<tr>
    <td>Uge:</td>
    <td><input type="text" name="uge" value="" size="5" maxlength="2"></td>
</tr>

<tr>
    <td>Vælg fil:</td>
    <td><input name="fil" type="file"></td>
</tr>

<tr>
    <td>Kommentar:</td>
    <td><input type="text" name="kommentar" value="" size="40" maxlength="20"></td>
</tr>

<tr>
    <td></td>
    <td><input type="submit" value="Send File"> </td>
</tr>

</table>
</form>


---------------------------------

//billeduploadok.php
<?

//her ligger mine db oplysninger i
require("config.inc.php");

//opretter forbindelse
make_connection();

//Her skal filen flyttes fra
$src = $_FILES['fil']['tmp_name'];

//Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['fil']['name'])));

//laver lige et par variabler :-)
$kommentar = $kommentar;
$uge = $uge;
$tid = time();

//Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$nytNavn = "uploadet-" . $tid . "." . $ext;

//Her er vores destination for det store billede
$dst = "../upload/" . $nytNavn;

//her uploades det store billede:
copy($src, $dst);



//billed-funktioner:
$image = $dst;

//hvis billedet eksisterer
if(file_exists($image)) {

//billedet eksisterer
$foto = 1;

//find størrelsen
$imgsize = getimagesize($image);

//hvis bredden er mere end 200px
if($imgsize[0] > 200) {

//sæt det nye billedes bredde til 200,
//og regn højden ud så propertionerne passer
$width = 200;
$height = $imgsize[1] / ($imgsize[0] / 200);

//lav et nyt, blankt billede
$dst_img=imagecreatetruecolor($width,$height);

//åbn kildebilledet
$src_img=ImageCreateFromJpeg("$image");

//kopiér og resize kildebilledet over i det nye billede
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img));

//lav output til mappen /tmp/
ImageJpeg($dst_img, "../upload/thumbnail/" . $nytNavn);
       
//hvis bredden ikke er over 200px
} else {

//åbn kildebilledet og lav output
$src_img=ImageCreateFromJpeg("$image");
ImageJpeg($src_img, $dst);
};

//sæt url'en til billedet
$imgurl = "../upload/thumbnail/" . $nytNavn;
} else {

//foto findes ikke
$foto = 0;
};


//Her ligges oplysningerne ind databasen – huske at connecte til den!
$query    = "INSERT INTO billeder (billede, uge, kommentar, thumbnail) VALUES ('$dst','$uge','$kommentar','$imgurl')";
mysql_query($query);

?>
Avatar billede googolplex Novice
21. december 2003 - 21:10 #1
Prøv lige dette:

--------------------
//billedupload.php

<form enctype="multipart/form-data" action="billeduploadok.php" method="post">
<table cellspacing="2" cellpadding="2" border="0">

<tr>
    <td>Uge:</td>
    <td><input type="text" name="uge" value="" size="5" maxlength="2"></td>
</tr>

<tr>
    <td>Vælg fil 1:</td>
    <td><input name="fil" type="file[]"></td>
</tr>

<tr>
    <td>Vælg fil 2:</td>
    <td><input name="fil[]" type="file"></td>
</tr>

<tr>
    <td>Kommentar:</td>
    <td><input type="text" name="kommentar" value="" size="40" maxlength="20"></td>
</tr>

<tr>
    <td></td>
    <td><input type="submit" value="Send File"> </td>
</tr>

</table>
</form>

---------------------------------

//billeduploadok.php


<?php

//her ligger mine db oplysninger i
require("config.inc.php");

//opretter forbindelse
make_connection();

foreach ($_FILES['fil']['name'] as $key => $value)
{

//Her skal filen flyttes fra
$src = $_FILES['fil']['tmp_name'][$key];

//Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['fil']['name'][$key])));

//laver lige et par variabler :-)
$kommentar = $kommentar;
$uge = $uge;
$tid = time();

//Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$nytNavn = "uploadet-" . $tid . "." . $ext;

//Her er vores destination for det store billede
$dst = "../upload/" . $nytNavn;

//her uploades det store billede:
copy($src, $dst);



//billed-funktioner:
$image = $dst;

//hvis billedet eksisterer
if(file_exists($image)) {

//billedet eksisterer
$foto = 1;

//find størrelsen
$imgsize = getimagesize($image);

//hvis bredden er mere end 200px
if($imgsize[0] > 200) {

//sæt det nye billedes bredde til 200,
//og regn højden ud så propertionerne passer
$width = 200;
$height = $imgsize[1] / ($imgsize[0] / 200);

//lav et nyt, blankt billede
$dst_img=imagecreatetruecolor($width,$height);

//åbn kildebilledet
$src_img=ImageCreateFromJpeg("$image");

//kopiér og resize kildebilledet over i det nye billede
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img));

//lav output til mappen /tmp/
ImageJpeg($dst_img, "../upload/thumbnail/" . $nytNavn);
       
//hvis bredden ikke er over 200px
} else {

//åbn kildebilledet og lav output
$src_img=ImageCreateFromJpeg("$image");
ImageJpeg($src_img, $dst);
};

//sæt url'en til billedet
$imgurl = "../upload/thumbnail/" . $nytNavn;
} else {

//foto findes ikke
$foto = 0;
};


//Her ligges oplysningerne ind databasen – huske at connecte til den!
$query    = "INSERT INTO billeder (billede, uge, kommentar, thumbnail) VALUES ('$dst','$uge','$kommentar','$imgurl')";
mysql_query($query);
}
?>
Avatar billede googolplex Novice
21. december 2003 - 21:11 #2
Hov, en mikro fejl:

Prøv lige dette:

--------------------
//billedupload.php

<form enctype="multipart/form-data" action="billeduploadok.php" method="post">
<table cellspacing="2" cellpadding="2" border="0">

<tr>
    <td>Uge:</td>
    <td><input type="text" name="uge" value="" size="5" maxlength="2"></td>
</tr>

<tr>
    <td>Vælg fil 1:</td>
    <td><input name="fil[]" type="file"></td>
</tr>

<tr>
    <td>Vælg fil 2:</td>
    <td><input name="fil[]" type="file"></td>
</tr>

<tr>
    <td>Kommentar:</td>
    <td><input type="text" name="kommentar" value="" size="40" maxlength="20"></td>
</tr>

<tr>
    <td></td>
    <td><input type="submit" value="Send File"> </td>
</tr>

</table>
</form>

---------------------------------

//billeduploadok.php


<?php

//her ligger mine db oplysninger i
require("config.inc.php");

//opretter forbindelse
make_connection();

foreach ($_FILES['fil']['name'] as $key => $value)
{

//Her skal filen flyttes fra
$src = $_FILES['fil']['tmp_name'][$key];

//Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['fil']['name'][$key])));

//laver lige et par variabler :-)
$kommentar = $kommentar;
$uge = $uge;
$tid = time();

//Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$nytNavn = "uploadet-" . $tid . "." . $ext;

//Her er vores destination for det store billede
$dst = "../upload/" . $nytNavn;

//her uploades det store billede:
copy($src, $dst);



//billed-funktioner:
$image = $dst;

//hvis billedet eksisterer
if(file_exists($image)) {

//billedet eksisterer
$foto = 1;

//find størrelsen
$imgsize = getimagesize($image);

//hvis bredden er mere end 200px
if($imgsize[0] > 200) {

//sæt det nye billedes bredde til 200,
//og regn højden ud så propertionerne passer
$width = 200;
$height = $imgsize[1] / ($imgsize[0] / 200);

//lav et nyt, blankt billede
$dst_img=imagecreatetruecolor($width,$height);

//åbn kildebilledet
$src_img=ImageCreateFromJpeg("$image");

//kopiér og resize kildebilledet over i det nye billede
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img));

//lav output til mappen /tmp/
ImageJpeg($dst_img, "../upload/thumbnail/" . $nytNavn);
       
//hvis bredden ikke er over 200px
} else {

//åbn kildebilledet og lav output
$src_img=ImageCreateFromJpeg("$image");
ImageJpeg($src_img, $dst);
};

//sæt url'en til billedet
$imgurl = "../upload/thumbnail/" . $nytNavn;
} else {

//foto findes ikke
$foto = 0;
};


//Her ligges oplysningerne ind databasen – huske at connecte til den!
$query    = "INSERT INTO billeder (billede, uge, kommentar, thumbnail) VALUES ('$dst','$uge','$kommentar','$imgurl')";
mysql_query($query);
}
?>
Avatar billede homsabu Nybegynder
22. december 2003 - 23:11 #3
det ser ud til at virke perfekt!!! :-)

MANGE MANGE TAK... jeg har selv prøvet uden held... men jeg er heller ikke så stærk i php mm.... :-)

Og forresten... hvis jeg får brug for at kunne upload'e flere billeder ad gangen - så skal jeg bare ændre i billedupload.php og indsætte flere input boxe, ik?!?
Avatar billede googolplex Novice
22. december 2003 - 23:16 #4
Jep, lige præcis.

Det eneste jeg gjorde var:

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

Så er 'fil' et array. Derefter smækkede jeg hele din kode ind i (geniale) foreach(), som jeg kørte på $_FILES['fil']['name'].

Meget simpelt faktisk, håber det fortsætter med at virke :)

Takker for point!
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