Avatar billede playr Nybegynder
15. marts 2007 - 16:31 Der er 8 kommentarer

Multi billed-upload

Hej jeg vil gerne have min kode til at uploade 2 (muligvis flere) billeder. Den kan sagtens uploade flere, problemet er bare at hvis man ikke udfylder alle felterne gider den ikke uploade!

----------------- Felterne -----------------
$userfile
$userfile2

----------------- Filen --------------------



$userfile = $_FILES['userfile']['tmp_name'];
    $userfile_name = $_FILES['userfile']['name'];
    $userfile_size = $_FILES['userfile']['size'];
    $userfile_type = pathinfo($_FILES['userfile']['name'],PATHINFO_EXTENSION);
    $userfile_dim = getimagesize($_FILES['userfile']['tmp_name']);
    $userfile_typer = array('jpg','jpeg','gif');

    $userfile2 = $_FILES['userfile2']['tmp_name'];
    $userfile2_name = $_FILES['userfile2']['name'];
    $userfile2_size = $_FILES['userfile2']['size'];
    $userfile2_type = pathinfo($_FILES['userfile2']['name'],PATHINFO_EXTENSION);
    $userfile2_dim = getimagesize($_FILES['userfile2']['tmp_name']);
    $userfile2_typer = array('jpg','jpeg','gif');


$filename = basename($userfile_name);
$filename2 = basename($userfile2_name);


// Billede nr 1
if($userfile_size <= 0) die ("Du skal vælge et billede du vil uploade!");
if($userfile_size > $max_filesize) die ("Billede nr.1 er for stort! Billedet må højst fylde $max_filesize byte!");
if(!@copy($userfile, "$archive_dir/$filename")) die ("Kan ikke kopiere $userfile_name til $filename.");
if(isset($WINDIR) && !@unlink($userfile)) die ("Kan ikke slette filen $userfile_name.");

if($userfile_dim[0] > 500 || $userfile_dim[1] > 500)
        die("Billede nr.1 er over 500x500 px!");

if(!in_array($userfile_type,$userfile_typer))
        die("Billede nr.1 er ikke en gyldig fil. Du må kun uploade jpg/gif filer");


// Billede nr 2
if($userfile2_size > $max_filesize) die ("Billede nr.2 er for stort! Billedet må højst fylde $max_filesize byte!");
if(!@copy($userfile2, "$archive_dir/$filename2")) die ("Kan ikke kopiere $userfile2_name til $filename2.");
if(isset($WINDIR) && !@unlink($userfile2)) die ("Kan ikke slette filen $userfile2_name.");

if($userfile2_dim[0] > 500 || $userfile2_dim[1] > 500)
        die("Billede nr.2 er over 500x500 px!");

if(!in_array($userfile2_type,$userfile2_typer))
        die("Billede nr.2 er ikke en gyldig fil. Du må kun uploade jpg/gif filer");


----------------- SLUT -----------------

Hvordan gør jeg således at hvis man kun udfylder den ene (ligemeget hvilken) så uploader den bare det ?

På forhånd tak
Avatar billede jakobdo Ekspert
15. marts 2007 - 17:05 #1
Du kan tage flere billeder på denne måde:

//opretter fil
$img = $cwd . '/' . $img . '/';
foreach ($_FILES['pictures']['error'] as $key => $error)
{
    if ($error == UPLOAD_ERR_OK)
    {
        $tmp = $_FILES["pictures"]["tmp_name"][$key];
        $full = $_FILES["pictures"]["name"][$key];
        move_uploaded_file($tmp, $img . $full);
    }
}
Avatar billede jakobdo Ekspert
15. marts 2007 - 17:06 #2
Og så laver du felterne som:
<input type="file" name="pictures[]">
<input type="file" name="pictures[]">
<input type="file" name="pictures[]">
<input type="file" name="pictures[]">
<input type="file" name="pictures[]">
Avatar billede playr Nybegynder
15. marts 2007 - 17:12 #3
Vil du være sød og smide det ind i koden?
Avatar billede jakobdo Ekspert
15. marts 2007 - 17:22 #4
Nej tak, prøv du lige selv. :o)
Avatar billede showsource Seniormester
16. marts 2007 - 01:50 #5
<input type="file" name="userfile[]">

<?php
if(isset($_FILES["userfile"])) {
    if(is_uploaded_file($_FILES["userfile"]["tmp_name"])) {
    // tjek om getimagesize() er sand og flyt så filer
    }
}
?>
Avatar billede showsource Seniormester
16. marts 2007 - 01:50 #6
ups....
Avatar billede showsource Seniormester
16. marts 2007 - 01:54 #7
if(isset($_FILES["userfile"])) {
    for($i = 0; $i < count($_FILES["userfile"]["name"]); $i++) {
        if(is_uploaded_file($_FILES["userfile"]["tmp_name"][$i])) {
        // tjek om getimagesize() er sand og flyt så filer
        }
    }
}
?>
Avatar billede playr Nybegynder
16. marts 2007 - 09:30 #8
tak lav svar
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