Avatar billede fbb Nybegynder
04. april 2004 - 23:30 Der er 27 kommentarer og
1 løsning

upload resize og max størelse

Hej, jeg har selv en upload ting men jeg skal bruge nogle flere funktioner i den.
Det skal opload til en MySQL database.
Den skal nemlig smide en tekst med i database.
Men den skal kunne resize billede, så alle billeder kommer ned på server er ca 250*250, og max størelse må være 100 mb.

Håber en eller anden kan hjælpe mig her.

Plz...
Avatar billede Slettet bruger
05. april 2004 - 00:10 #1
Lav en variabel du f.eks. kalder $max_filesize, og sæt den til 100mb, i byte. Altså 1.000.000

Ved formens script, laver du blot en ifsætning der tjekker, om $max_filesize er mindre end filesize(); af "file" formens variabel. Hvis den IKKE er det, kan de uploades.

Altså sådan:

$max_filesize = 1000000;

// Form-scriptet her, et sted har du et formobjekt der hedder:
<input type="file" name"userfile"> // Userfile er noget jeg har kaldt den, brug det du kalder den istedet.

$userfile_size = filesize($userfile);

if($userfile_size > $max_filesize) die ("$filename is too big! Only $max_filesize bytes allowed!");       

Eller noget i den stil ;)
Avatar billede fbb Nybegynder
05. april 2004 - 00:30 #2
Hmm kan ikke lgie finde ud af smide det sammen med det jeg har, men her er det jeg har nu:
<form method="post" action="post.php" enctype="multipart/form-data">
<input type="hidden" name="up" value="upload">
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="submit" value="Upload">
</form>

post.php:
if ($_POST['up'] == 'upload') {
    for ($i=0;$i<count($_FILES['file']['name']);$i++) {
        if ($_FILES['file']['name'][$i] != '') {
        $fnavn = time().substr($_FILES['file']['name'][$i],strrpos($_FILES['file']['name'][$i],'.'));
        move_uploaded_file($_FILES['file']['tmp_name'][$i], '../files/'.$fnavn);
        }
    }
    header("Location: index.php");
}

Det skal være 100kb ikke mb.. min fejl.. hehe..

kan du sætte det sammen?
Avatar billede fbb Nybegynder
05. april 2004 - 00:30 #3
og kan du smide en resize på?
Avatar billede Slettet bruger
05. april 2004 - 00:54 #4
<form method="post" action="post.php" enctype="multipart/form-data">
<input type="hidden" name="up" value="upload">
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="submit" value="Upload">
</form>

post.php:

$max_filesize = 1000;

if ($_POST['up'] == 'upload') {
    for ($i=0;$i<count($_FILES['file']['name']);$i++) {
        if ($max_filesize < filesize($file[$i]) {
        echo "Din fil er for stor!";
        exit;
        }
        if ($_FILES['file']['name'][$i] != '') {
        $fnavn = time().substr($_FILES['file']['name'][$i],strrpos($_FILES['file']['name'][$i],'.'));
        move_uploaded_file($_FILES['file']['tmp_name'][$i], '../files/'.$fnavn);
        }
    }
    header("Location: index.php");

Prøv det!
Avatar billede fbb Nybegynder
05. april 2004 - 09:12 #5
ok, kan du også sætte en rezise på, altså så alle billeder for samme størelse?
Hvis du kan få det ind i, så ville det være perfekt. ;)
Avatar billede fbb Nybegynder
05. april 2004 - 09:19 #6
hmm vis vi dropper resize, kan du så ikke smide den der max_filesize på dette her:
if (isset($_POST['up'])) {
    $i = 0;
    require ("../db.php");
    while (list($name, $value) = each($_FILES['upfil']['name'])) {
        if ($value) {
            $dist = $_SERVER["DOCUMENT_ROOT"] ."/fbbgalleri/img/";
            $files = $value;
            $temparr = explode(".", $files);
            $temparr[count($temparr)-2] = time();
            $files = implode(".", $temparr);
            $rand = rand(1,100000);
            $files = "$rand$files";
            move_uploaded_file($_FILES['upfil']['tmp_name'][$i], $dist . $files);
            mysql_query("INSERT INTO gallery (time, filename) VALUES (now(), '$files')");
        }
        $i++;
    }
}
Avatar billede sparki Nybegynder
05. april 2004 - 12:27 #7
13 <form method="post" action="post.php" enctype="multipart/form-data">
<input type="hidden" name="up" value="upload">
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="file" name="file[]"><br>
&nbsp;<input type="submit" value="Upload">
</form>

post.php:

$max_filesize = 1000;

if ($_POST['up'] == 'upload') {
    for ($i=0;$i<count($_FILES['file']['name']);$i++) {
        if ($max_filesize < filesize($file[$i]) {
        echo "Din fil er for stor!";
        exit;
        }
        if ($_FILES['file']['name'][$i] != '') {
        $fnavn = time().substr($_FILES['file']['name'][$i],strrpos($_FILES['file']['name'][$i],'.'));
        move_uploaded_file($_FILES['file']['tmp_name'][$i], '../files/'.$fnavn);
        }
    }
    header("Location: index.php");
Avatar billede fbb Nybegynder
05. april 2004 - 20:48 #8
sparki dit svar fatter jeg ikke lige???
Avatar billede Slettet bruger
05. april 2004 - 21:01 #9
Sparki : Hvad har du ændret i dit svar i forhold til mit?
Avatar billede fbb Nybegynder
05. april 2004 - 21:02 #10
pacr00n, kan jeg få dig til at kigge på min kommentar: 05/04-2004 09:19:50 ?
Avatar billede Slettet bruger
05. april 2004 - 21:02 #11
if (isset($_POST['up'])) {
$max_filesize = 1000;
if ($max_filesize < filesize($file[$i]) {
        echo "Din fil er for stor!";
        exit;
    $i = 0;
    require ("../db.php");
    while (list($name, $value) = each($_FILES['upfil']['name'])) {
        if ($value) {
            $dist = $_SERVER["DOCUMENT_ROOT"] ."/fbbgalleri/img/";
            $files = $value;
            $temparr = explode(".", $files);
            $temparr[count($temparr)-2] = time();
            $files = implode(".", $temparr);
            $rand = rand(1,100000);
            $files = "$rand$files";
            move_uploaded_file($_FILES['upfil']['tmp_name'][$i], $dist . $files);
            mysql_query("INSERT INTO gallery (time, filename) VALUES (now(), '$files')");
        }
        $i++;
    }
}
Avatar billede Slettet bruger
05. april 2004 - 21:03 #12
Hov. Det var ikke rigtigt.

if (isset($_POST['up'])) {
$max_filesize = 1000;
if ($max_filesize < filesize($file) {
        echo "Din fil er for stor!";
        exit;
    $i = 0;
    require ("../db.php");
    while (list($name, $value) = each($_FILES['upfil']['name'])) {
        if ($value) {
            $dist = $_SERVER["DOCUMENT_ROOT"] ."/fbbgalleri/img/";
            $files = $value;
            $temparr = explode(".", $files);
            $temparr[count($temparr)-2] = time();
            $files = implode(".", $temparr);
            $rand = rand(1,100000);
            $files = "$rand$files";
            move_uploaded_file($_FILES['upfil']['tmp_name'][$i], $dist . $files);
            mysql_query("INSERT INTO gallery (time, filename) VALUES (now(), '$files')");
        }
        $i++;
    }
}

Her er det så forudsat, at dit textfelt i formen hedder
<input type="file" name="file">
Avatar billede fbb Nybegynder
05. april 2004 - 21:10 #13
tester lige
Avatar billede fbb Nybegynder
05. april 2004 - 21:23 #14
Parse error: parse error in /web/www.frederikbb.dk/www/numsegejl/admin/upload.php on line 4
Linje 4: if ($max_filesize < filesize($filup) {
Avatar billede fbb Nybegynder
05. april 2004 - 21:25 #15
hmm der mangler en ) ;D
Men nu for jeg fejl i min sidste linie i mit script:
<?
if (isset($_POST['up'])) {
$max_filesize = 1000;
if ($max_filesize < filesize($filup)) {
        echo "Din fil er for stor!";
        exit;
    $i = 0;
    require ("../db.php");
    while (list($name, $value) = each($_FILES['upfil']['name'])) {
        if ($value) {
            $dist = $_SERVER["DOCUMENT_ROOT"] ."/numsegejl/galleri/";
            $files = $value;
            $temparr = explode(".", $files);
            $temparr[count($temparr)-2] = time();
            $files = implode(".", $temparr);
            $rand = rand(1,100000);
            $files = "$rand$files";
            move_uploaded_file($_FILES['upfil']['tmp_name'][$i], $dist . $files);
            mysql_query("INSERT INTO numsegejlgalleri (time, filename, tekst) VALUES (now(), '$files','$tekst')");
        }
        $i++;
    }
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<?php
    for ($s = 0; 10 > $s; $s++) {
?>
<input type="file" name="upfil[]"><br>
<?php
    }
?>
Kommentar:<input type="text" name="tekst" size="20">
<input type="submit" value="Upload" name="up">
</form>
Avatar billede fbb Nybegynder
05. april 2004 - 21:37 #16
har fundet det.. smider du et svar?
Avatar billede fbb Nybegynder
05. april 2004 - 21:41 #17
Virker ikke... kan godt oploade støre billeder ind 100 kb mit kode:
<?
if (isset($_POST['up'])) {
$max_filesize = 1000;
if ($max_filesize < filesize($filup)) {
        echo "Din fil er for stor!";
        exit;
}
    $i = 0;
    require ("../db.php");
    while (list($name, $value) = each($_FILES['upfil']['name'])) {
        if ($value) {
            $dist = $_SERVER["DOCUMENT_ROOT"] ."/numsegejl/galleri/";
            $files = $value;
            $temparr = explode(".", $files);
            $temparr[count($temparr)-2] = time();
            $files = implode(".", $temparr);
            $rand = rand(1,100000);
            $files = "$rand$files";
            move_uploaded_file($_FILES['upfil']['tmp_name'][$i], $dist . $files);
            mysql_query("INSERT INTO numsegejlgalleri (time, filename, tekst) VALUES (now(), '$files','$tekst')");
        }
        $i++;
    }
}   
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<?php
    for ($s = 0; 10 > $s; $s++) {
?>
<input type="file" name="upfil[]"><br>
<?php
    }
?>
Kommentar:<input type="text" name="tekst" size="20">
<input type="submit" value="Upload" name="up">
</form>
Avatar billede Slettet bruger
05. april 2004 - 21:53 #18
Ifsætningen er jo også forkert egentlig. Den siger filen er for stor hvis den er under 100 kb.

Echoer den ikke hver gang?

if (filesize($filup) > $max_filesize) {
        echo "Din fil er for stor!";
        exit;
}
Avatar billede fbb Nybegynder
07. april 2004 - 00:07 #19
hjælper heller ikke, den smider fil lige op, fil på lidt over 500kb..
Avatar billede Slettet bruger
07. april 2004 - 00:22 #20
http://www.pacroon.dk/projects/upload.phps

Tjek det script, der er der en filstørrelsesbegrænsning, og det virker.
Avatar billede fbb Nybegynder
07. april 2004 - 00:34 #21
den smækker det ikke i database har jeg brug for..
Avatar billede Slettet bruger
07. april 2004 - 01:56 #22
Jeg tænkte mere at du kunne se syntaxen...
Avatar billede autohh Nybegynder
07. april 2004 - 02:02 #23
Pacroon :) fed chat i har fået lavet jer :) syntes den r alt for fed :)

håber i fået lavet noget på den :) (ved godt jeg ikke skulle have skrevet det her inde) men kunne ikke lade vær :D
Avatar billede fbb Nybegynder
07. april 2004 - 08:48 #24
pacr00n, tja, men jeg ikke lige se hvordan jeg skal få det i mit script, er ikke så vild til php
Avatar billede fbb Nybegynder
07. april 2004 - 23:09 #25
så vis en kan sætte det sammen...
Avatar billede fbb Nybegynder
11. april 2004 - 21:15 #26
Ingen de rkan hjælpe mig...?
Avatar billede Slettet bruger
12. april 2004 - 13:13 #27
Efter 8 dages åbentid må man godt lukke det og åbne et nyt, identisk spørgsmål, så det bliver mere set igen. Det kunne du jo prøve, og evt. henvise hertil.
Jeg må indrømme jeg ikke helt ved hvad din fejl er.
Avatar billede fbb Nybegynder
12. april 2004 - 18:51 #28
ok, gør jeg så ;)
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