Afbeelding uploaden & resizen

Door Cynthia Fridsma, 16 jaar geleden, 6.127x bekeken

Op veler verzoek, hierbij het aangepaste script om een afbeeling in je database te laden en meteen online een afbeelding te resizen en met BB filter + een blader functie!

Voorbeeld upload script:
http://www.heathernova.us/image_resize/upload_afbeelding.php

Voorbeeld browser:
http://www.heathernova.us/image_resize/browse.php


Veel plezier,
Cynthia


Toegevoegd:
Een voorbeeld van .htaccess voor als je een groter bestand dan 2 mb wilt uploaden....


Het filter heb ik veranderd, alleen .gif en .jpg mogen nu nog geupload worden.

Het filter was :
function afbeeldingen ($file_name) {
return(ereg('[]0-9a-zA-Z_[-]+(.jpg)|(.gif)|(.bmp)|(.png)', $file_name));

}

Gewijzigd
Filter.php
Filter.php kijkt nu ook naar schadelijke extensies zoals bijvoorbeeld de extensie .php

Upload_afbeelding.php
Schadelijke extensies, zoals de toevoeging van .php: bijvoorbeeld hallowereld.jpg.php wordt nu geweerd.

Upload_afbeelding.php
Toegevoegd :
<input type="hidden" name="MAX_FILE_SIZE="100000">
Afbeeldingen groter dan 1 mb worden niet geupload.

Als extra check tevens toegevoegd:

-------------- toegevoegd ----------------------
# grootte van de afbeelding
$size = $file_array['size'];
if ($size >100000) :
echo "Sorry maar deze afbeelding is te groot,<br>\nEen
afbeelding mag maximaal 1 Mb groot zijn!";

else:

--------- einde toevoeging -------

Gesponsorde koppelingen

PHP script bestanden

  1. afbeelding-uploaden-en-resizen

 

Er zijn 18 reacties op 'Afbeelding uploaden en resizen'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Iltar van der berg
iltar van der berg
16 jaar geleden
 
0 +1 -0 -1
Hm, ik zie nergens waar je checked wat de extensie is, en ik zie dat je de post niet correct checked, en je checked de upload niet voor /...

Stel ik upload een file genaamd:

../../../index.php
Dan zit je mooi bij de gebakke peren

Edit:

mijn fout
extensie word wel gechecked, maar dan kan je alsnog een virus in een jpg stoppen en uploaden naar: ../../../image.jpg als voorbeeld
Cynthia Fridsma
cynthia Fridsma
16 jaar geleden
 
0 +1 -0 -1
Je kan uploaden wat je wilt, maar de filter functie accepteert alleen maar :
.jpg, .gif, .bmp en .png


Wat het virus betreft:
Tja, ja kan natuurlijk niet alles voorkomen. Het is overigens ook niet bedoelt voor een multiuser omgeving, dit script, maar alleen als voorbeeld voor iedereen hier om deze zelf uit te breiden.


Anders had ik er wel een beveiliging in gebouwd (wat ik normaliter doe)...

Bij het commentaar scherm zal je zien dat je daar geen 'rare' commando's kunt geven omdat html wordt gestript....

Regel 80:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$stap2= strip_tags($stap1, $allow);
Leroy Boerefijn
Leroy Boerefijn
16 jaar geleden
 
0 +1 -0 -1
als ik een .png upload.. dan komt er een leuke error :) (sorry ik ben vergeten hem te coppy pasten :P )

edit bekijk ook http://www.heathernova.us/image_resize/browse.php?pos=899 eens ;) :P

edit2 soms staat er ook een leuk zwart plaatje.. en als je erop klikt komt het echte plaatje pas ;)

edit3 :P voor de rest is het wel een leuk script :)
Cynthia Fridsma
cynthia Fridsma
16 jaar geleden
 
0 +1 -0 -1
Toelichting op het filter:

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
// functie voor het testen van de file extensies

function afbeeldingen ($file_name)  {
   return(ereg('[]0-9a-zA-Z_[-]+(.jpg)|(.gif)|(.bmp)|(.png)', $file_name));  

}



Als er aan deze voorwaarde wordt voldaan dan is de regel
 if ($test !=""):
    true.

Alle andere extensies worden niet geacepteerd.
Cynthia Fridsma
cynthia Fridsma
16 jaar geleden
 
0 +1 -0 -1
Dat klopt en dat komt omdat ik geen functie heb ingebouwd .png (en voor .bmp), ik zal deze dan ook uit het filter halen zodat je 'geen stoute dingen kunt doen ;-)

Grapje.

Ik heb het script ter leerling en vermaak geplaatst waarbij ik bestanden alleen van en naar .jpg resize. Dus ik hou geen rekening met andere extensies in dit script. Ik zou dat wel kunnen doen, maar ik ben gewoon een beetje lui...
Iltar van der berg
iltar van der berg
16 jaar geleden
 
0 +1 -0 -1
Wat heeft het dan voor nut om het hierop te plaatsen? Plaats een goed en volledig script, of plaats niets.
Cynthia Fridsma
cynthia Fridsma
16 jaar geleden
 
0 +1 -0 -1
Het is een volledig werkend script, je kan het immers op mijn site zien en het doet precies zoals ik beschrijf:

Je upload een afbeelding en tijdens de upload wordt deze geresized. Dus ja, het is een volledig werkend script, het bewijs is er.

Alleen heb ik hem niet gemaakt voor .png bestanden, maar dit kan natuurlijk gewoon aangepast worden. Ik zou zeggen: wees blij dat ik een script met jullie deel want ik kan de code natuurlijk ook gewoon voor mezelf houden.

Maar ik vind het leuk om dingen met anderen te delen en door het commentaar dat ik krijg is het voor mij ook weer leerzaam.

Overigens:
Er staan hier diverse scripts van mij op, ook een script om een directory te beveiligen en dit script stond er ook al eerder op maar doordat ik diverse vragen kreeg van "He Cynthia, is het ook mogelijk om een image te resizen tijdens het uploaden", besloot ik om dit script voor JULLIE te maken.

Maar ja, als jij daar problemen mee hebt jammer dan. Ik hoop dat andere mensen er wel wat aan hebben want het werkt wel meneer Van der Berg.
Diesel
Diesel
16 jaar geleden
 
0 +1 -0 -1
Zeg cynthia, ik heb eens een vraag (iedereen anders mag ook antwoorden natuurlijk :P).

Is het mogelijk om een png die een transparante achtergrond heeft, te uploaden, te resizen en daarbij ook zijn transparante achtergrond te behouden? Ik heb al enkele dingen geprobeerd die ik terug kon vinden in de watermark tutorials, maar het lukt me niet.
Dus, mocht iemand het antwoord weten op deze vraag, plz let me know (ik veronderstel dat het wel gaat, maar dat ik gewoon niet waat hoe...)
Bo az
Bo az
16 jaar geleden
 
0 +1 -0 -1
Je extensie filter klopt toch niet helemaal: http://www.heathernova.us/image_resize/images/ip.jpg.php
Joeri
Joeri
16 jaar geleden
 
0 +1 -0 -1
leuk maar probeer deze error nog weg te werken als het te groot is:

++Thumbnail directorty bestaat07/07/07 13.49:05

path: /tmp/php34VFy8
name: 15_04_07_een_dagje_planckendaal_018.jpg
type: image/jpeg
size: 942523
15_04_07_een_dagje_planckendaal_018.jpg dit is een afbeelding
Afbeelding staat op de server

images/15_04_07_een_dagje_planckendaal_018.jpg is toegevoegd aan de database met als omschrijving :

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 1536 bytes) in /home/httpd/vhosts/heathernova.us/httpdocs/image_resize/upload_afbeelding.php on line 177
Cynthia Fridsma
cynthia Fridsma
16 jaar geleden
 
0 +1 -0 -1
Ik had nog geen max file size ingevoerd, heb ik nu gedaan en te grote afbeeldingen worden niet meer geupload.

Bedankt voor het testen en jullie feedback!
Cynthia Fridsma
cynthia Fridsma
16 jaar geleden
 
0 +1 -0 -1
Overigens:

Als je afbeeldingen wilt uploaden die groter zijn dan bijvoorbeeld 2 mb, dan kan je .htaccess aanpassen:

php_value upload_max_filesize 4M
php_value post_max_size 5M
php_value memory_limit 16M

hier is de maximum grootte 4 MB, deze waarde kan je veranderen in bijvoorbeeld 7 MB. Het bestand ziet er dan als volgt uit:

php_value upload_max_filesize 7M
php_value post_max_size 8M
php_value memory_limit 16M

Groetjes,
Cynthia
Martijn
martijn
16 jaar geleden
 
0 +1 -0 -1
Heey Cynthia,

Het lukt mij niet ik ben aan het spelen geweest maar hij geeft error op regel 74 van upload_afbeelding.php.
dat hij het commentaar niet kan toevoegen.

Fatal error: Call to undefined function: qcms_tags() in /home/account036/domains/stuntbusters.nl/public_html/stuntbusters/img/upload_afbeelding.php on line 74

Waar kan dit aan liggen?

Groetjes
Martijn
Cynthia Fridsma
cynthia Fridsma
16 jaar geleden
 
0 +1 -0 -1
Beste Martijn,

Je kan het script als zip file via mijn server downloaden.

De URL is :
http://qcms.heathernova.us/download.php?new_url=downloads/php-scripts/

De rechtstreekse link om te downloaden is :
http://qcms.heathernova.us/get.php?start=downloads/php-scripts/&file_name=image-resize-script.zip&file_size=6295

Groetjes,
Cynthia
DeZond
DeZond
16 jaar geleden
 
0 +1 -0 -1
Een mooi script , Cynthia. ! Ik was al fan van de vorige versie. Nu pas met thumbnail ontdekt !
Vraagje: hoe kan ik een vaste hoogte instellen voor de thumbnail ?
Nu heb verkijg ik enkel een procentuele verkleining.
Iria
iria
15 jaar geleden
 
0 +1 -0 -1
Hoi ik had een vraagje bij mij gebeurt er helemaal niets!!!!!
Hoe kan dat???
Ik krijg geen fout melding
http://www.iria.nl/webshop/upload_afbeelding.php
Marc huyghebaert
marc huyghebaert
15 jaar geleden
 
0 +1 -0 -1
Hoi allemaal,
Ik ben een beginner in php dat vooruit gezegd zijnde, ik heb dit scriptje uitgeprobeerd, en alles werkt, ik kan de foto uploaden heb ook de directory mod 777 geplaats doch bij het lezen van de foto's loopt het mis.

Er worden geen geuploade foto's getoont tenzij ik deze ook mod.

?? wat doe ik verkeerd?

Alle help welkom
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Gerben van Erkelens
Gerben van Erkelens
14 jaar geleden
 
0 +1 -0 -1
Is het ook mogelijk om het resizen naar bijvoorbeeld 100x100pixels te doen? en dan de grote foto te resizen naar dat formaat en vervolgens pas te uploaden en op te slaan in de database? Zo ja, kan dat met deze code? en hoe verander ik dat dan precies?

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. afbeelding-uploaden-en-resizen

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.