Avatar billede kack Nybegynder
11. februar 2008 - 22:34 Der er 7 kommentarer og
1 løsning

Uploade flere billeder på én gang

Hej alle sammen. Jeg har et script herinde fra hvor jeg kan uploade et billede ad gangen til min serveren samtidig med der bliver lagt en række ind i mysql.
Vil høre om det er muligt at man kan uploade en hel mappe, hvorefter billederne både bliver uploadet til serveren og lagt ind i mysql på samme tid?

Håber I forstår mig :)
Avatar billede olebole Juniormester
11. februar 2008 - 22:39 #1
<ole>

Du er nødt til at bruge ét file-input for hver fil, der skal uploades - med mindre brugeren skal tillade, en ActiveX komponent downloades og installeres ... og det er der ingen, der gør  :)

/mvh
</bole>
Avatar billede kack Nybegynder
11. februar 2008 - 22:43 #2
Altså f.eks. lave 10x <input type='file' name='file'> ?

Hvad gør man så efter det? Hvis jeg skal være ærlig, aner jeg det virker ikke.
Avatar billede straszek Praktikant
12. februar 2008 - 08:11 #3
Ja, det kan gøres hvis du bruger et flash plugin i samarbejde med php. Jeg bruger dette element: http://www.element-it.com/MultiPowUpload.aspx

og det virker fint til upload af mange filer på en gang
Avatar billede kack Nybegynder
12. februar 2008 - 11:37 #4
Hey, det ser da rigtig smart ud =) Men hvordan kan jeg bygge det ind i min egen kode?
Avatar billede leif Seniormester
12. februar 2008 - 11:41 #5
Avatar billede kack Nybegynder
12. februar 2008 - 12:55 #6
Tror vidst lige jeg skal tage mig noget tid til at se hvordan det der egentlig fungere :)
Avatar billede kack Nybegynder
12. februar 2008 - 13:20 #7
Nå, har kigget lidt på det. Og det er den her kode jeg skal bruge:

<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

echo 'Upload result:<br>'; // At least one symbol should be sent to response!!!

$uploaddir = dirname($_SERVER['SCRIPT_FILENAME'])."/UploadedFiles/";

$target_encoding = "ISO-8859-1";
echo '<pre>';
if(count($_FILES) > 0)
{
    $arrfile = pos($_FILES);
    $uploadfile = $uploaddir . iconv("UTF-8", $target_encoding,basename($arrfile['name']));

    if (move_uploaded_file($arrfile['tmp_name'], $uploadfile))
      echo "File is valid, and was successfully uploaded.\n";
}
else
    echo 'No files sent. Script is OK!'; //Say to Flash that script exists and can receive files

echo 'Here is some more debugging info:';
print_r($_FILES);

echo "</pre>";

?>


Men hvordan lægger jeg min egen kode ind i den? Altså bla. resize, rename og billederne også bliver lagt ind i mysql?
Avatar billede kack Nybegynder
12. februar 2008 - 13:21 #8
Det her er den kode jeg bruger lige nu:

<?php
//Sender billedet ind
$limitedext = array(".jpg",".jpeg",".gif",".bmp");
$sizelimit = "ja";
$sizebytes = "2000000000";

$tid = md5(date('U'));

if($_POST['skriv']=="doit"){
if ($_FILES['file'] != "") {
  $ext=strrchr($_FILES['file']['name'],'.');
  $ext=strtolower($ext);
$filnavnet = $_SERVER["DOCUMENT_ROOT"] . "/Vaon/billeder/".$tid.$ext;



if (!in_array($ext,$limitedext) ) {
  die("Filen er en forkert filtype. De tiladte filtyper er bmp, gif og jpg/jpeg.");
}

if($ext==".bmp"){
if (($_FILES['file']['size'] > $sizebytes)) {
  die("Billedet er for stort. En fil må højest fylde 200000 kb.");
}
@copy($_FILES['file']['tmp_name'], $filnavnet) or die("Filen kunne ikke kopieres til serveren ".$filnavnet);
}else{


@copy($_FILES['file']['tmp_name'], $filnavnet) or die("Filen kunne ikke kopieres til serveren ".$filnavnet);
    #-+ Read the source image
    $src_img = ImageCreateFromJPEG($filnavnet);

    #Vælg bredden
    $tn_w = "800";
    $tn_h = "532";

    #Hent billedets bredde og højde
    $imginfo = getimagesize($filnavnet);
    $org_w= $imginfo[0];
    $org_h = $imginfo[1];

    #Beregn højden i forhold til bredden
    $tn_h = floor($tn_w * $org_h / $org_w);

    #Sæt det nye billede
    $dst_img = imagecreatetruecolor($tn_w,$tn_h);

    #Ændre det!
    ImageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $tn_w, $tn_h, $org_w, $org_h);

    #Gem det!
    ImageJPEG($dst_img, $filnavnet);

    #slet "midlertidige" filer fra serveren.
    imagedestroy($dst_img);
}
} else {
  die("Husk at vælge et Billede");
}
echo "<p />";
echo "Dit billede blev uploadet";
mysql_query("INSERT INTO vao_billeder (fest, billede, festid, slettet) VALUES('".$_GET['navn']."','$tid$ext','".$_GET['festid']."','0')") or die(mysql_error());
}else{
?>
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