Avatar billede homsabu Nybegynder
21. december 2003 - 15:45 Der er 2 kommentarer og
1 løsning

Upload af flere billeder via PHP

Hej drenge...
I plejer at være så skarpe til at finde fejl... se om i kan finde en her!! :-)

Landet ligger sådan at jeg har fundet et script som kan uploade hele billeder OG lave et thumbnail af dem samtidig (vha. GDlib)... Men scriptet jeg har  fundet kan kun ta' ET billede af gangen - så jeg har FORSØGT(!!) at ændre det så det (burde) kunne uploade flere billeder... Før jeg ændrede noget virkede det selvfølgelig fint - men efter... ja gæt selv!! :-)

Jeg laver lige 2 post efter det her spørgsmål - først med det originale script... og så mit redigerede...
Avatar billede homsabu Nybegynder
21. december 2003 - 15:47 #1
//billedupload.php

<form 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;
};



?>
Avatar billede homsabu Nybegynder
21. december 2003 - 15:49 #2
billedupload.php
-----------------

<form action="billeduploadok.php" method="post">
<table cellspacing="2" cellpadding="2" border="0">

<tr>
    <td>Billed<input type="text" name="galleryname" value="" size="40" maxlength="20"></td>
</tr>
<tr>
    <td><input name="fil1" type="file"></td>
</tr>
<tr>
    <td><input name="fil2" type="file"></td>
</tr>
<tr>
    <td><input name="fil3" type="file"></td>
</tr>
<tr>
    <td><input name="fil4" type="file"></td>
</tr>


<tr>
    <td><input type="submit" value="Submit Gallery"></td>
</tr>

</table>
</form>
----------------------------------------------------
billeduploadok.php
------------------
<?
$pics = "4";
$pics++;
$current = "1";
while ($current < $pics) {
$currentfile = "fil$current";
$fil = $$currentfile;
include "billeduploading.php";
$current++;
}
?>
-------------------------------------------------------------
billeduploading.php
-------------------
<?

//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 = "$galleryname" . $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 100px
if($imgsize[0] > 100) {

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

//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 100px
} 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;
};

?>
------------------------------------------
(ps: jeg har ændret stierne for hvor den skal uploade til... det testede jeg at virkede før jeg begyndte at ændre andet!!)
Avatar billede homsabu Nybegynder
21. december 2003 - 20:46 #3
lukker 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