Avatar billede oliverg Nybegynder
10. november 2003 - 11:30 Der er 22 kommentarer

max mb i mappe

Hej kan man lave så man kun kan bruge f.eks. 5 mb i en mappe....?

Så der må være indhold i mappen indtil der er over f.eks. 5 mb i mappen....?
Avatar billede sukos Juniormester
10. november 2003 - 11:37 #1
Bruger du en uploadform?
Ellers er det noget serversetup du skal ha' gang i.
Avatar billede Slettet bruger
10. november 2003 - 11:51 #2
Du kan tjekke størrelsen på en mappe, hvis den er større end 5 MB må brugeren ikke uploade.

Du skal nok uddybe lidt mere hvad du vil, men scriptet herunder udskriver størrelsen på en mappe:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
</head>

<body>

<?

function convert($convertTo, $b, $dec) {

if($b < 1024) {
if(substr($b, 0, -1) > 1) {
$ekstra = "s";
}
return $b . " byte" . $ekstra;
}

if($b > 1024) {
$endelse = " kilobyte";
$convertTo = 1;
}

if($b > 1024 * 1024) {
$endelse = " megabyte";
$convertTo = 2;
}

if($b > 1024 * 1024 * 1024) {
$endelse = " gigabyte";
$convertTo = 3;
}

if($b > 1024 * 1024 * 1024 * 1024) {
$endelse = " terabyte";
$convertTo = 4;
}

// antal decimaler efter komma
$dec = 1;

$expression = pow(1024, $convertTo);
$b = number_format($b / ($expression), $dec);
if(substr($b, 0, -1) > 1) {
$ekstra = "s";
}
return $b . $endelse . $ekstra;
}

function get_file_type($filename) {
ereg( ".*\.([a-zA-z0-9]{0,5})$", $filename, $regs );
$f_ext = $regs[1];

$types['Billede'] = array ('jpeg', 'jpg', 'gif','png');
$types['Tekst'] = array ('html', 'htm', 'text', 'txt', 'doc', 'ini', 'csv', 'pdf');
$types['Musik'] = array ('wma', 'mp3', 'mpeg3');
$types['Pakket fil'] = array ('zip', 'tar', 'rar','pak', 'gz');
$types['Filmklip'] = array ('wmv', 'mov', 'avi', 'rv', 'mpg', 'mpeg');
$types['Program'] = array ('exe');
foreach ($types as $k => $v) {
if (in_array($f_ext, $v)) {
return $k . " (." . $f_ext . ") ";
break;
}
}
return "Ukendt (." . $f_ext . ") ";
}

function fsize($file){
        $size;

        if(is_dir($file))
                if ($dh = opendir($file))
                        while (($filecnt = readdir($dh)) !== false) {
                                if($filecnt == "." || $filecnt == "..")continue;
                                if(is_dir($file."/".$filecnt))
                                        $size += fsize($file."/".$filecnt);
                                else
                                        $size += filesize($file."/".$filecnt);
                        }
                else
                        return false;
        else
                $size = filesize($file);
        return $size;
}

$mappe = "billeder";

echo "mappen \"" . $mappe . "\" indeholder " . convert("", fsize($mappe), "");

?>

</body>
</html>
Avatar billede Slettet bruger
10. november 2003 - 11:52 #3
Du kan jo lige slette funktionen get_file_type() fra scriptet, det var en fejl det kom med.
Avatar billede oliverg Nybegynder
10. november 2003 - 12:13 #4
el_barto den siger...

Warning: filesize(): Stat failed for billeder (errno=2 - No such file or directory) in C:\Websites\3d-chatten.dk\www\max_mb.php on line 65
mappen "billeder" indeholder byte

og dette er linen: $size = filesize($file);

og jeg har slettet funktionen get_file_type()
Avatar billede Slettet bruger
10. november 2003 - 12:17 #5
Jamen det er klart...du skal jo selv ændre "billeder" til den mappe du vil tjekke :P
Avatar billede Slettet bruger
10. november 2003 - 12:18 #6
Altså ændre i $mappe = "billeder";
Avatar billede oliverg Nybegynder
10. november 2003 - 12:22 #7
ok nu virker det... :D hvad gør den så hvis der er over 5 mb??
Avatar billede Slettet bruger
10. november 2003 - 12:26 #8
Jamen så gør den jo ikke noget...det jeg kom med var bare et skub i den rigtige retning.
Avatar billede Slettet bruger
10. november 2003 - 12:30 #9
Men den her skulle virke:

<?
function fsize($file){
        $size;

        if(is_dir($file))
                if ($dh = opendir($file))
                        while (($filecnt = readdir($dh)) !== false) {
                                if($filecnt == "." || $filecnt == "..")continue;
                                if(is_dir($file."/".$filecnt))
                                        $size += fsize($file."/".$filecnt);
                                else
                                        $size += filesize($file."/".$filecnt);
                        }
                else
                        return false;
        else
                $size = filesize($file);
        return $size;
}

$mappe = "billeder";

if(fsize($mappe) > 55242880) {
echo "mappe fyldt";
} else {
echo "værsgo og upload du!";
}

?>
Avatar billede oliverg Nybegynder
10. november 2003 - 12:41 #10
uploader lige nået over 5 mb 2 sek...
Avatar billede oliverg Nybegynder
10. november 2003 - 12:55 #11
det virker ikke, der er over 5 mb i mappen men den siger "værsgo og upload du!"
Avatar billede Slettet bruger
10. november 2003 - 13:04 #12
Der havde sneget sig et 5 tal for meget ind i maksimalgrænsen...
55242880 skal være 5242880

:)
Avatar billede oliverg Nybegynder
10. november 2003 - 17:49 #13
ok, nu virker det... ved du hvordan man gør så hvis der er over 5 mb skal den ikke køre scriptet under den kode?
Avatar billede Slettet bruger
10. november 2003 - 18:17 #14
if(fsize($mappe) > 55242880) {
echo "mappe fyldt";
exit;
} else {
echo "værsgo og upload du!";
}

//Noget kode her der ikke bliver udført pga. exit
Avatar billede oliverg Nybegynder
10. november 2003 - 18:57 #15
ok :D
Avatar billede oliverg Nybegynder
10. november 2003 - 18:58 #16
du får 10 points mere hvis du kan få det til at virke med mysql db...
altså så den henter mappe navnet via where i en db...
Avatar billede Slettet bruger
10. november 2003 - 19:05 #17
Jeg har 30000 points i forvejen, så det tror jeg er ligemeget...

Men hvad er dit problem med mysql'en?
Avatar billede oliverg Nybegynder
10. november 2003 - 19:23 #18
jeg fatter ikke helt hvordan man siger at den skal finde mappenavnet i en db og så tjekke det der...
Avatar billede oliverg Nybegynder
10. november 2003 - 19:24 #19
f.eks. $mappe = "./$mappenavn";
Avatar billede Slettet bruger
20. november 2003 - 08:18 #20
Lukketid?
Avatar billede oliverg Nybegynder
20. november 2003 - 18:41 #21
det er da dig der skulle hjælpe mig... ;)
Avatar billede Slettet bruger
20. november 2003 - 20:43 #22
Jamen jeg er jo ikke tankelæser.
Hvordan skal jeg svare på "jeg fatter ikke helt hvordan man siger at den skal finde mappenavnet i en db og så tjekke det der..."

??
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