HttpUploadedFile::isImage

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Honza Marek
Člen | 1664
+
0
-

Na PS jsme domlouvali tuhle funkci.

btw: Proč není sekce feature request pod vývojem frameworku?

David Grudl
Nette Core | 8218
+
0
-

Jak to mělo fungovat? Že to načte getImageSize()? Nebude nakonec lepší použít MIMETYPE validaci?

Honza Marek
Člen | 1664
+
0
-

Cca (bool) @getimagesize($src). Mělo to hlavně pomoct zjistit obrázky zpracovatelné pomocí Nette\Image, takže jiné typy než jpg, gif a png možná ani nemají být obrázky.

PetrP
Člen | 587
+
0
-

Co spíš něco jako

public function isImage()
{
	return in_array($this->getContentType(),array('image/gif','image/jpeg','image/png'));
}

aby to použilo fileinfo, mime_content_type, nebo až v nejhorším getimagesize

Teď když ale koukám na getContentType tak v první řadě nemá zavináč před getimagesize a pak může i použít type předanej clientem. Neměl by mít nějaký přepínač a raději vyhodit chybu než důvěřovat clientovi?

PetrP
Člen | 587
+
0
-

Tedka jsem objevil nepřijemnej problém (na hostmonsteru php 5.2.9) mime_content_type('./test.png') vrací text/plain i když to je určitě png (dělá to jen u png).

David Grudl
Nette Core | 8218
+
0
-

PetrP napsal(a):

Co spíš něco jako

public function isImage()
{
	return in_array($this->getContentType(),array('image/gif','image/jpeg','image/png'));
}

aby to použilo fileinfo, mime_content_type, nebo až v nejhorším getimagesize

Otázka je, jestli fileinfo a mime_content_type jsou nějak lepší než getimagesize, řekl bych že asi ne.

Teď když ale koukám na getContentType tak v první řadě nemá zavináč před getimagesize

K čemu by byl potřeba?

a pak může i použít type předanej clientem. Neměl by mít nějaký přepínač a raději vyhodit chybu než důvěřovat clientovi?

Nad tím váhám celé roky ;) Ale asi by bylo vhodnější tam dát v případě neznámého typu application/octet-stream

David Grudl
Nette Core | 8218
+
0
-

PetrP napsal(a):

Tedka jsem objevil nepřijemnej problém (na hostmonsteru php 5.2.9) mime_content_type('./test.png') vrací text/plain i když to je určitě png (dělá to jen u png).

Tak změním prioritu, getimagesize půjde jako první.

PetrP
Člen | 587
+
0
-

David Grudl napsal(a):

Teď když ale koukám na getContentType tak v první řadě nemá zavináč před getimagesize

K čemu by byl potřeba?

Občas mi to háze chyby, možná když je ten soubor spatně nahranej, nebo jestli se s ním něco stane pozdějc (isOk to nezachrání) až budu mít chvilku tak to zkusím podrobněji vyzkoumat.

Nad tím váhám celé roky ;) Ale asi by bylo vhodnější tam dát v případě neznámého typu application/octet-stream

Horší je ani na jednom hostingu co jsem zkoušel nemám extension fileinfo a jen na 2 je mime_content_type ale jen na jednom z nich funguje správně

To znamená že nemám skoro nikde možnost jak zjistit content type jinde než u obrázků. ;//

Tedy bych možnost volitelně získat aspoň data od clienta ocenil.