Meerdere foto's uploaden met compressie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior PHP Developer Energy Services Symfony

Medior PHP Developer Energy Services Symfony Wat ga je doen als Medior PHP Developer? Als Medior PHP Developer uit de omgeving Rotterdam, ga jij werken aan een real-time energievoorziening webportal voor in de agrarische sector. De webportal ontzorgt klanten 24/7 volautomatische aansturing van warmtekrachtkoppeling, warmtepompen en netinkoop. Dit op basis van actuele APX in-en verkoopverplichtingen en onbalansmarktprijzen. Deze webportal levert 5 minuten near-time (bron) meetdata, automatisch ingelezen marktprijzen gas en elektriciteit en doorlopend near-time (op kwartierbasis) geactualiseerde financiële en technische performance rapportages (waaronder rookgasreiniging raakgascondensor monitoring). Hiermee bied jij een "energiedashboard" met alle relevante parameters om optimale economische en technische

Bekijk vacature »

Senior PHP Developer Onderwijssoftware SaaS oploss

Senior PHP Developer Onderwijssoftware SaaS oplossing Wat ga je doen als Senior PHP developer? Als Senior PHP Developer uit de omgeving Amsterdam, ga jij werken aan onderwijs-software pakketten voor basis- en het voorgezet onderwijs, en voor volwasseneducatie. Het pakket voor basisonderwijs is een overzichtelijke communicatie tool (Laravel) voor leerkrachten. Met de tool kunnen zij ouders en verzorgers meer betrekken bij de vooruitgang van het kind. Denk hierbij aan nieuwsbrieven, oudergesprekken inplannen, persoonlijke berichten en absentie registratie. De overige pakketten (Symfony) worden aangeboden als een SAAS-online leerplatform. Het geeft leerkrachten de mogelijkheden om extra lesmaterialen van uitgevers om op maat onderwijs

Bekijk vacature »

Rob Rob

Rob Rob

19/10/2018 10:32:49
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Attachment:<br>
<input class="form-control" type="file" name="attachments[]" id="attachments" multiple style="width:300px">


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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);
    }

?>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Attachment:<br>
<input class="form-control" type="file" name="image" id="image" style="width:300px">


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?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--
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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

Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 19/10/2018 18:10:18 door - Ariën -
 
PHP hulp

PHP hulp

22/03/2019 14:19:08
 
- Ariën -
Beheerder

- Ariën -

19/10/2018 11:33:53
Quote Anchor link
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.
Gewijzigd op 19/10/2018 11:41:36 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

19/10/2018 14:45:39
Quote Anchor link
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).
 
Rob Doemaarwat

Rob Doemaarwat

19/10/2018 17:07:00
Quote Anchor link
En je kunt/mag niet in je php.ini gewoon upload_max_filesize (en post_max_size!) flink opschroeven?
 
- Ariën -
Beheerder

- Ariën -

19/10/2018 18:11:32
Quote Anchor link
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.
 
Jan te Pas

Jan te Pas

21/10/2018 13:30:42
Quote Anchor link
Er is zeer veel info. Je kunt met een script voordat een foto daadwerkelijk geüpload wordt resizen. Wellicht is dit een oplossing. Jij bepaalt vooraf de formaten die geüpload mogen worden. En dan laat je het script de rest doen. Hier ene link met, mogelijk, een oplossing:https://stackoverflow.com/questions/23945494/use-html5-to-resize-an-image-before-upload
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.