Avatar billede webcreator Nybegynder
30. juli 2003 - 16:26 Der er 12 kommentarer og
1 løsning

Upload-script - filesize

Hej.

Jeg har et upload-script, med mulighed for at sætte en maks-størrelse på filerne. Men sætter jeg fx. denne størrelse til 1MB, så kan jeg sagtens uploade filer på fx. 4 MB - men ikke på 1.5 MB. Jeg tror det skyldes, at der fra serverens side er sat en begrænsning på 2 MB. Kan det passe ? Løsningsforslag ?
Avatar billede webcreator Nybegynder
30. juli 2003 - 16:42 #1
Jeg kunne evt. godt tænke mig at vide, om andre upload-scripts har samme problem.
Avatar billede hobz Nybegynder
30. juli 2003 - 17:48 #2
Hvordan har du sat din max-størrelse?
Avatar billede webcreator Nybegynder
30. juli 2003 - 17:50 #3
if (($size_limit == "yes") && ($limit_size <= $file_size)) {
    $fejl = true;
    $uds = "Filen er for stor";
} else {
    HER FOREGÅR UPLOAD
}

$limit_size indeholder max-filstørrelse i bytes
Avatar billede tipsen Nybegynder
30. juli 2003 - 18:15 #4
Der er en indstilling som kun kan sættes i php.ini eller httpd.conf:

upload_max_filesize "2M" PHP_INI_SYSTEM

Det er default-indstillingen på 2Mb som du ikke kan omgå med mindre du har adgang til en af de to nævnte filer.
Avatar billede webcreator Nybegynder
30. juli 2003 - 18:45 #5
Så det er altså normalt, at det virker op til 2 MB, men at upload-scriptet ingen indvirkning har ud over denne størrelse ? For det virer jo perfekt, hvis limit er sat til 1 MB, og filen fylder fx. 1.2
Avatar billede tipsen Nybegynder
30. juli 2003 - 18:50 #6
Der er ingen grund til at du ikke selv kan definere en lavere grænse i dit script - det er måske muligt at du roder lidt rundt i variablene eller at de ikke indeholder det du forventer - umiddelbart ser ovennævnte hvertfald fint ud.
Avatar billede webcreator Nybegynder
30. juli 2003 - 18:52 #7
Jeg kan sagtens definere lavere værdier. Men lige meget hvad, så duer begrænsningen ikke, hvis folk uploader filer på mere end 2 MB (og ja, max_filesize er sat til 2 MB i PHP_ini)
Avatar billede webcreator Nybegynder
30. juli 2003 - 18:54 #8
Arh, jeg er kommet til at vrøvle. Filen bliver nemlig slet ikke uploadet. Men den forsætter forløbet i else-sætning, som om at alt var i orden. Og netop i denne else, oprettes også en post i min DB (tilknyttet filen). Og det er DET, der er problemet. Så måske man kunne tjekke, om filen rent faktisk blev uploadet?
Avatar billede webcreator Nybegynder
30. juli 2003 - 18:57 #9
Jeg tillader mig lige, at paste en god del af koden, som sørger for upload samt oprettelse af post :


if (file_exists("$absolute_path/$file_name")) {
    $fejl = true;
    $uds = "Filnavn optaget. Omdøb venligst din fil";
} else {

    if (($size_limit == "yes") && ($limit_size <= $file_size)) {
        $fejl = true;
        $uds = "Filen er for stor";
    } else {
                       
        $ext = strrchr($file_name,'.');

    if (($limit_ext == "yes") && (!in_array($ext,$extensions))) {
        $fejl = true;
            $uds = "Filtype ikke godkendt";
        } else {
                               
            @copy($file, "$absolute_path/$file_name") or $fejl = "error";
                           
            $insertSQL = "insert into posts (user, kate, file)
                                    values ('$user', '$kate', '$file_name')";
            mysql_query($insertSQL) or die (mysql_error());
                               
            mysql_close($conn);
                               
        header("location:uds.php?uds=Opgaven blev uploadet</a>");
        exit;
                           
    }
    }
}
Avatar billede webcreator Nybegynder
30. juli 2003 - 18:58 #10
@copy($file, "$absolute_path/$file_name") or $fejl = "error";
Jeg ved ikke helt, om det jeg har gjort efter "or" er lovligt
Avatar billede tipsen Nybegynder
30. juli 2003 - 21:33 #11
I stedet for copy() bruger du move_uploaded_file() - se: http://dk.php.net/manual/en/function.move-uploaded-file.php
Avatar billede webcreator Nybegynder
30. juli 2003 - 21:54 #12
Ok - den vil jeg så benytte i stedet :)
Har I andre gode ideer til forbedringer ?
Avatar billede tipsen Nybegynder
30. juli 2003 - 22:04 #13
Resten ser fint ud - men som sagt er det håbløst at omgå begrænsningen på 2Mb.
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