Avatar billede danic Nybegynder
26. april 2005 - 16:35 Der er 4 kommentarer og
1 løsning

Upload af fil som array med statisk navn

Jeg har en html form,

<input class="file" type="file" rows="15" NAME="upfile[]">
<input class="file" type="file" rows="15" NAME="upfile[]">

Mit problem er at jeg skal uploade begge indputs før det virker, hvis jeg kun uploader fra den ene eller anden bliver den altid gemt som den første.

Der er vigtigt at jeg holder fast navnet, da det senere benyttes til at gemme filnavnet i mysql.
filename1=$filename[1]
filename2=$filename[2]

dvs.

<input class="file" type="file" rows="15" NAME="upfile[]">
skal altid blive $filename[1]
<input class="file" type="file" rows="15" NAME="upfile[]">
skal altid blive $filename[2]

selv om der kun oploades en fil.
Avatar billede baitianlong Nybegynder
26. april 2005 - 16:48 #1
<input class="file" type="file" rows="15" NAME="fil1">
<input class="file" type="file" rows="15" NAME="fil2">

$filename1=$_FILES['fil1']['name'];
$filename2=$_FILES['fil2']['name'];

...eller ?!? :)
Avatar billede danic Nybegynder
26. april 2005 - 18:58 #2
Nej, jeg vil beholde <input class="file" type="file" rows="15" NAME="upfile[]">
Avatar billede olebole Juniormester
26. april 2005 - 19:30 #3
<ole>

Nu er et array jo 0-baseret, så du kan aldrig få indeks 1 og 2 med to array elementer. Det vil give 0 og 1  ;o)

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

print $_FILES["fil"]["name"][0];
print $_FILES["fil"]["name"][1];

For en anden gangs skyld, bør du kende til var_dump():
    var_dump($_FILES);
- så skriver du ud, hvad der ligger i $_FILES-array'et

/mvh
</bole>
Avatar billede danic Nybegynder
26. april 2005 - 19:40 #4
Ole er det muligt at tælle en "tom" værdi med og så ignore den i scriptet her?

if (isset($_FILES["upfile"]))
{
    $antal = 0;
   
    //Find antallet af filer til upload med en for-løkke
    for($i = 0; $i < count($_FILES["upfile"]["name"]); $i++)
    {
   
        if ($_FILES["upfile"]["name"][$i] !="")
        {
            //Læg en til $antal for hver fil.
            $antal++;
           
            if(is_uploaded_file($_FILES["upfile"]["tmp_name"][$i]))
            {
       
            $dist = $_SERVER["DOCUMENT_ROOT"] . "/pics";
                   
            move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $dist . '/' . strtolower(ereg_replace("[^a-zA-Z0-9\_\.\-]", "_", $_FILES["upfile"]["name"][$i] )) );
       

            $filename[] = strtolower(ereg_replace("[^a-zA-Z0-9\_\.\-]", "_", $_FILES["upfile"]["name"][$i] ));
            //Info om ´størrelse, Kbyte
            $filesize[] = round($_FILES["upfile"]["size"][$i]/1024,2);
            //Info om filtype
            $filetype[] = $_FILES["upfile"]["type"][$i];
       
            }else{
       
            echo"Upload til serveren skete ikke!";
            }
        }
    }
}
Avatar billede danic Nybegynder
28. april 2005 - 22:10 #5
lukker!
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