• De afgelopen dagen zijn er meerdere fora waarop bestaande accounts worden overgenomen door spammers. De gebruikersnamen en wachtwoorden zijn via een hack of een lek via andere sites buitgemaakt. Via have i been pwned? kan je controleren of jouw gegeven ook zijn buitgemaakt. Wijzig bij twijfel jouw wachtwoord of schakel de twee-staps-verificatie in.

Advies Meerdere foto's uploaden met compressie

Status
Niet open voor verdere reacties.

Rob_Eindhoven

Nieuw lid
Lid geworden
19 okt 2018
Berichten
3
Waarderingsscore
0
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:

--HTML--

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);
}

--HTML--

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

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
 
Wil jij van jou server een afbeeldingenserver maken?
Heb jij op jou server onbepaalde opslag (onder onder voorwaarden)?

En een andere vraag: welke forumsoftware heb jij gekozen?
 
Wil jij van jou server een afbeeldingenserver maken?
De foto's worden toegevoegd in een map genaamd images die inderdaad op de server staat........de naam de foto's worden toegevoegd in een MySQL database. (Zonder SQL injectie zie ik nu:oops:)

Heb jij op jou server onbepaalde opslag (onder onder voorwaarden)?
Het probleem is niet de opslag op de server.....meer de wachttijd voor het uploaden mede omdat hij daarna een FPDF maakt en deze verstuurd via PHPMailer.

En een andere vraag: welke forumsoftware heb jij gekozen?

Wat bedoeld u met forumsoftware?


Dus eigenlijk komt het erop neer dat ik niet weet hoe ik de compressie toepas in mijn for loop
 
Is het de bedoeling dat jouw afbeeldingenforum gebruikt gaat worden voor weergave van foto's op andere sites, of is het de bedoeling dat jij zelf dus een forum wordt zodat mensen via jouw forum foto's kunnen laten zien?

Met forum bedoel ik software zoals waar dit forum mee werkt.
 
Ik heb denk ik een foutje gemaakt in de vraag stelling ik bedoel een form inplaats van een forum.....dus het is een form met een <input type"file"> button.....deze upload de file op de server in de map images.....en de naam van de file komt in de MySQL database. Maar dit gaat fout als je te groten bestanden wilt versturen......nu heb ik in de PHP.ini aangepast naar 50M maar dit is maar een tijdelijke oplossing want het uploaden van de foto, FPDF, PHPMailer duurt nu ongeveer 15sec maar dit komt eigenlijk maar door 1 ding omdat de foto's te groot zijn
 
Ik ben webmaster van 6 WordPress sites.

Foto's die gepost worden worden door het programma Webresizer aangepast op tweeërlei wijze:
a) het formaat
b) de digitale diepte (76 bij voorkeur voor web weergave)
 
Ik wil er nog aan toevoegen, dat het mij nog steeds niet duidelijk is wat jij nu bereiken wil met foto's van jouw zelf en van anderen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan