Toon posts:

[PHP] plaatje controleren op grootte/formaat

Pagina: 1
Acties:
  • 108 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een form met file upload. Ik wil echter, voor dat de plaatjes daardwerkelijk met move_uploaded_file() worden geplaatst, dat ze eerst worden gecheckt op grootte en formaat.

Ik heb in de search gekeken maar vond daar geen duidelijke uitkomsten. En ik zag er veel staan over de GD lib.. maar deze staat dus niet op de server van toepassing

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

www.php.net/getimagesize

geen gd nodig....

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
ja maar hoe pas ik dat toe op een plaatje dat nog niet geplaatst is op internet?
maar via de form nog geupload wordt

dus move_uploaded_file() is nog niet gebruikt

Verwijderd

Je kan het plaatje volgens mij met PHP niet lokaal scannen op hoogte en breedte, misschien kan je het met Javascript doen.

Anders kan je het eerst op de server zetten, controleren op breedte en hoogte en dan er iets mee doen (deleten?) als het te groot is of zo....

Je kan natuurlijk ook in PHP de MAX_FILE_SIZE setten bij een file upload, dan kan je de grootte (in Kb) controleren op maximum grootte.

Verwijderd

Op vrijdag 10 mei 2002 19:48 schreef Anchorman het volgende:
Je kan het plaatje volgens mij met PHP niet lokaal scannen op hoogte en breedte, misschien kan je het met Javascript doen.
image.heigth en image.width werken gewwon in JS jah.

Verwijderd

Anders move je 'm eerst, en controleert hem dan... Kan toch ook?

  • Stoffel
  • Registratie: Mei 2001
  • Laatst online: 25-05 17:40

Stoffel

Engineering the impossible

je kunt na:
PHP:
1
<?(is_uploaded_file($bestand))?>

dit gebruiken:
PHP:
1
<?$bestand_size$bestand_type?>

enzovoorts, en als je het formaat bedoelt als H*B kun je dat zo doen:
PHP:
1
<?$imginfo = getimagesize("$image"); $imgbreed = $imginfo[0];   //breedte$imghoog = $imginfo[1];    //hoogte?>

en weer
PHP:
1
<?$imgtype = $imginfo[2];    //voor het soort plaatje?>

klik ook eens op de link in de 2e post, daar staat de rest over getimagesize...

succes :)

Verwijderd

Topicstarter
Op vrijdag 10 mei 2002 23:41 schreef Tizzwat het volgende:

[..]

image.heigth en image.width werken gewwon in JS jah.
hmm dit klinkt als een interessante oplossing, maar JS is toch uit te schakelen in je browser? Dat zou betekenen dat de check niet 100% secure wordt..

en als dit nou wel de oplossing is voor het probleem.. hoe gebruik ik het dan in combinatie met het upload formulier?

ik dacht zelf ook al aan eerst uploaden, dan checken en dan desnoods deleten, als ie de check niet doorkomt.. maar unlink() werkt niet want dan krijg ik de melding dat de UIN niet overeenkomt met de andere UIN ofzo dus permission denied.

als ik via mn php script met ftp probeer te deleten krijg ik call to undefined function (hij begrijpt ftp_connect() niet :?)

Verwijderd

Topicstarter
Op zaterdag 11 mei 2002 05:47 schreef _-SToFFeL-_ het volgende:
klik ook eens op de link in de 2e post, daar staat de rest over getimagesize...

succes :)
deze link kende ik wel en hier heb ik ook al alle comments gelezen, daar staat ook wat in over de img groote bepalen voordat de image geupload is, maar dit werkte niet

  • Grum
  • Registratie: Juni 2001
  • Niet online
Voor dattie geupload is kan de de size niet checken ... simpel :)

  • Stoffel
  • Registratie: Mei 2001
  • Laatst online: 25-05 17:40

Stoffel

Engineering the impossible

Op zondag 12 mei 2002 17:40 schreef _Assassinator_ het volgende:

[..]

deze link kende ik wel en hier heb ik ook al alle comments gelezen, daar staat ook wat in over de img groote bepalen voordat de image geupload is, maar dit werkte niet
grootte als in size(bytes) kan wel voor het uploaden, ik gebruik namelijk zelf een upload functie die dat doet :)

afmetingen kan idd niet...

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op maandag 13 mei 2002 11:43 schreef _-SToFFeL-_ het volgende:

[..]

grootte als in size(bytes) kan wel voor het uploaden, ik gebruik namelijk zelf een upload functie die dat doet :)

afmetingen kan idd niet...
Tuurlijk kan dat wel.... Alleen niet met PHP. Je moet dat client side op lossen.

bv
code:
1
2
3
4
5
6
7
8
9
10
11
12
<SCRIPT>
function test(src)
{
t=new Image;
t.src=src;
alert("width: " + t.width + "\nheight: " + t.height);
}
</SCRIPT>
<form name="myform">
<input type="file" name="myfile">
<input type="button" value="Test" onClick="test(this.form.myfile.value)">
</form>

Programmer - an organism that turns coffee into software.


Verwijderd

beetje late reactie op deze topic, maar volgens mij heb je hier wel wat aan:


<!-- THREE STEPS TO INSTALL IMAGE RESIZER:

1. Copy the coding into the HEAD of your HTML document
2. Add the onLoad event handler into the BODY tag
3. Put the last coding into the BODY of your HTML document -->

<!-- STEP ONE: Paste this code into the HEAD of your HTML document -->

<HEAD>

<style>
.divstyle{position:absolute; width="0";height:"0"}
</style>

<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
function showimg(form)
{
adres = form.image_file.value;
index = adres.indexOf(".gif");
index = index + adres.indexOf(".jpg");
index = index + adres.indexOf(".bmp");
if (form.image_file.value == "")
{alert("No Image found!");}
else
{if (index == -3){alert("Unknow image type");
form.width.value=0;
form.height.value=0;}
else
{
var img_obj = new Image();
img_obj = form.image_file.value;
document.changing.src = img_obj;
document.changing2.src= img_obj;
document.changing.width = document.changing2.width;
document.changing.height = document.changing2.height;
set();
}
}
}
fast = 0;
change = 0;
function upw(){
document.image.width.value=parseInt(document.image.width.value)+1;
resize();}
function over_upw(){upw();
change = 1;
changetime = setTimeout("fast_upw()","600");}
function fast_upw(){clearTimeout(changetime);
upw();
fast = setTimeout("fast_upw()","100");}
function clt(){
if (change == 1){clearTimeout(changetime);}
clearTimeout(fast);
change = 0;
}
function resize() {document.changing.height = document.image.height.value;
document.changing.width = document.image.width.value;}
function downw(){document.image.width.value=parseInt(document.image.width.value)-1;
resize();}
function over_downw(){downw();
change = 1;
changetime = setTimeout("fast_downw()","600");}
function fast_downw(){clearTimeout(changetime);
downw();
fast = setTimeout("fast_downw()","100");}
function uph(){document.image.height.value=parseInt(document.image.height.value)+1;
resize();}
function over_downh(){downh();
change = 1;
changetime = setTimeout("fast_downh()","600");}
function fast_downh(){clearTimeout(changetime);
downh();
fast = setTimeout("fast_downh()","100");}
function over_uph(){uph();
change = 1;
changetime = setTimeout("fast_uph()","600");}
function fast_uph(){clearTimeout(changetime);
uph();
fast = setTimeout("fast_uph()","100");}
function downh(){document.image.height.value=parseInt(document.image.height.value)-1;
resize();}
function set(){
document.image.width.value=document.changing.width;
document.image.height.value=document.changing.height;}
// End -->
</script>

</HEAD>

<!-- STEP TWO: Insert the onLoad event handler into your BODY tag -->

<BODY onLoad="set()">

<!-- STEP THREE: Copy this code into the BODY of your HTML document -->

<center>
<form name="image">
<input type="file" name="image_file"><br><br>
<input type="button" name="show" value="Show image" onclick="showimg(this.form)">
<br><br>
Width Heigth
<br>[img]"/img/image-resizer/up.gif"[/img]
[img]"/img/image-resizer/down.gif"[/img]
<input type="text" name="width" size="4" readonly>
<input type="text" name="height" size="4" readonly>
[img]"/img/image-resizer/up.gif"[/img]
[img]"/img/image-resizer/down.gif"[/img]
<br><br>
<table border ="2">
<tr><td>
[img]"/img/image-resizer/1.gif"[/img]
</td></tr></table>
</form>
<div STYLE="left:-5000 px;top:0" class="divstyle">
<P >[img]"/img/image-resizer/1.gif"[/img]</p>
</div>
</center>

<p><center>
<font face="arial, helvetica" size"-2">Free JavaScripts provided<br>
by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
</center><p>

<!-- Script Size: 4.09 KB -->

Verwijderd

http://www.php.net/manual/en/features.file-upload.php
Misschien kun je daar iets vinden.. :)

Succes

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Op vrijdag 10 mei 2002 16:48 schreef _Assassinator_ het volgende:
Ik heb een form met file upload. Ik wil echter, voor dat de plaatjes daardwerkelijk met move_uploaded_file() worden geplaatst, dat ze eerst worden gecheckt op grootte en formaat.
Je laat hem uploaden, dan staat tie in een temp bestand, waar je bij kan via $field[tmp_name]. Daar kan je de grootte al van bepalen, met getimagesize.

Verwijderd

PHPbuilder heeft een erg mooi script. Ik heb het ook misbruikt in mijn systeem.
Pagina: 1