Hallo,

Ik heb een vraagje,

In Html heb ik een forum gemaakt waar je meerdere foto's kunt uploaden. Maar nu loop ik tegen een probleem aan.....de meesten foto's die je wilt uploaden zijn groter dan de maximale 2MB die mag uploaden in PHP. Dus ben ik op internet eens fink gaan zoeken naar PHP image compression. Hier legt echter niemand uit hoe dit werkt bij meerdere foto's.....

Hier is mijn code:


Attachment:<br>
<input class="form-control" type="file" name="attachments[]" id="attachments" multiple style="width:300px">



<?php
for($i = 0; $i < count($_FILES['attachments']['name']); $i++) {
        $filetmp = $_FILES["attachments"]["tmp_name"][$i];
        $filename = $_FILES["attachments"]["name"][$i];
        $filepath = "images/".$filename;

        move_uploaded_file($filetmp,$filepath);

        $querypictureupload = "INSERT INTO file_upload (filename) 
        VALUES ('$filename')";
        $result = mysqli_query($conn, $querypictureupload);
    }
?>




Attachment:<br>
<input class="form-control" type="file" name="image" id="image" style="width:300px">



<?php
if (isset($_POST['submit'])) {
    $target = "images/";
    $target = $target.basename($_FILES['image']['name']);

    $photo_name = ($_FILES['image']['name']);
    $imageFileType = pathinfo($target, PATHINFO_EXTENSION);
    $file = $photo_name;

    $query = "INSERT INTO photos(image) VALUES ('$file')";
    $result = mysqli_query($conn, $query);

    if ($result && compress($_FILES['image']['tmp_name'], $target, 50)) {
        echo "<script>alert('Image uploaded')</script>";
    }
    else {
        echo "<script>alert('An error occured')</script>";
    }
}
?>


--FUNCTIONS.PHP--

<?php
function compress($source, $destination, $quality){
        $info = getimagesize($source);

        if ($info['mime'] == 'image/jpeg')
            $image = imagecreatefromjpeg($source);
        elseif ($info['mime'] == 'image/gif')
            $image = imagecreatefromgif($source);
        elseif ($info['mime'] == 'image/png')
            $image = imagecreatefrompng($source);

        imagejpeg($image, $destination, $quality);

        return $destination;
    }
?>


Zoals hier boven in het 1e bestand te zien is kan je meerdere foto's uploaden, waar je in de 2e maar 1 kan uploaden maar deze wel verkleind wordt......

Is er iemand die mij kan helpen met het samenvoegen van deze 2 bestanden zodat je meerdere foto's kunt oploaden en dezen worden verkleind! Zelf had ik geprobeert op de function te verwerken in de for loop maar dat lukt niet helemaal..

Alvast bedankt

Kan je code-tags om je scripts plaatsen? Dan is het beter leesbaarder. Zie ook de Veelgestelde Vragen.

Ikzelf gebruik de uploadclass van Verot.net. Werkt super handig. En als je bestanden groter dan 2MB wilt uploaden, moet je jouw uploadlimiet aanpassen. Compressie heeft niks met het uploadproces te maken.
Het lijkt mij zaak dat je $filetmp omzet naar een gecomprimeerde variant (waarbij je wellicht ook kunt denken aan een maximale horizontale / verticale afmeting), en dan die variant permanent opslaat. move_uploaded_file() is dan waarschijnlijk niet nodig.

In een ander draadje kwam dit geval voorbij, volgens mij kan dat ding ook aan de client zijde afbeeldingen verkleinen (qua afmeting, dus niet zozeer compressie wellicht).
En je kunt/mag niet in je php.ini gewoon upload_max_filesize (en post_max_size!) flink opschroeven?
Ik weet wel dat PLupload aan chunking doet, door een bestand op te delen. Zo omzeil je die limiet.
2MB is overigens belachelijk weinig. Een beetje gemiddelde foto is tegenwoordig al 7 MB.

Reageren