🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
10 messages
10 total messages Started by jivanmukta Tue, 20 Jan 2015 17:16
MultiUpload pliku o nazwie ---.png
#230869
Author: jivanmukta
Date: Tue, 20 Jan 2015 17:16
19 lines
1987 bytes
Piszę witrynę w CodeIgniterze, PHP5, MySQL. Potrzebuję użyć kontrolki MultiUpload z jQuery. Zasadniczo mi działa ale jest problem gdy uploaduje plik o nazwie ---.png

A PHP Error was encountered
Severity: Notice
Message: getimagesize(): Read error!
Filename: libraries/Upload.php
Line Number: 609
An Error Was Encountered
Nie powiodło się wgranie obrazków.
Typ pliku który próbujesz wgrać jest niedozwolony.

Mam w kodzie:
echo "<input multiple='multiple' type='file' name='property_pictures[]' class='multi' accept='$exts'>";
gdzie $exts jest ustawione tak:
define('IMAGE_EXTS', 'gif|jpg|jpeg|jpe|bmp|png|gif87|gif89a');
define('MOVIE_EXTS', 'mpg|mpeg|mov|avi|wmv|vob|rm|rmvb|ogg|ogm');
$exts = IMAGE_EXTS . '|' . MOVIE_EXTS;
więc chyba nie chodzi o typ .png ale o nazwę ---
Czy powinienem sprawdzać nazwę pliku w walidacji formularza? Przy pomocy RegExp? Jakie nazwy odrzucać?
Re: MultiUpload pliku o nazwie ---.png
#230870
Author: Borys Pogoreło
Date: Tue, 20 Jan 2015 20:27
31 lines
1928 bytes
Dnia Tue, 20 Jan 2015 09:16:08 -0800 (PST), jivanmukta@poczta.onet.pl
napisał(a):

> A PHP Error was encountered
> Severity: Notice
> Message: getimagesize(): Read error!
> Filename: libraries/Upload.php
> Line Number: 609

I czemu nie wkleiłeś tych okolic linii 609?

> Mam w kodzie:
> echo "<input multiple='multiple' type='file' name='property_pictures[]' class='multi' accept='$exts'>";
> gdzie $exts jest ustawione tak:
> define('IMAGE_EXTS', 'gif|jpg|jpeg|jpe|bmp|png|gif87|gif89a');
> define('MOVIE_EXTS', 'mpg|mpeg|mov|avi|wmv|vob|rm|rmvb|ogg|ogm');
> $exts = IMAGE_EXTS . '|' . MOVIE_EXTS;
> więc chyba nie chodzi o typ .png ale o nazwę ---

To wszystko jest wyłącznie sugestią dla przeglądarki. Od użytkownika może
przyjść wszystko. Ale po wcześniejszych postach widać, że się tym zanadto
nie przejmujesz...

> Czy powinienem sprawdzać nazwę pliku w walidacji formularza? Przy pomocy RegExp? Jakie nazwy odrzucać?

A po co? ---.PNG to w pełni poprawna nazwa pliku. Napraw błąd w okolicach
linii 609.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: MultiUpload pliku o nazwie ---.png
#230874
Author: jivanmukta
Date: Wed, 21 Jan 2015 05:35
14 lines
1639 bytes
Oto system/libraries/Upload.php:

605		$image_types = array('gif', 'jpg', 'jpeg', 'png', 'jpe');
606
607		if (in_array($ext, $image_types))
608		{
609                     if (getimagesize($this->file_temp) === FALSE)
610			{
611				return FALSE;
612			}
613		}

$this->file_temp wskazuje na pewien plik z katalogu /tmp.
Miałym modyfikować kod CodeIgnitera? Może jednak lepiej nie akceptować nazwy ---?
Re: MultiUpload pliku o nazwie ---.png
#230875
Author: Borys Pogoreło
Date: Wed, 21 Jan 2015 16:47
26 lines
1602 bytes
Dnia Tue, 20 Jan 2015 21:35:39 -0800 (PST), jivanmukta@poczta.onet.pl
napisał(a):

> Oto system/libraries/Upload.php:
> 
> 605		$image_types = array('gif', 'jpg', 'jpeg', 'png', 'jpe');
> 606
> 607		if (in_array($ext, $image_types))
> 608		{
> 609                     if (getimagesize($this->file_temp) === FALSE)
> 610			{
> 611				return FALSE;
> 612			}
> 613		}
> 
> $this->file_temp wskazuje na pewien plik z katalogu /tmp.

I ten plik istnieje w momencie wywołania skryptu? Co jest w tej zmiennej?

> Miałym modyfikować kod CodeIgnitera? Może jednak lepiej nie akceptować nazwy ---?

I będziesz blokował każdą możliwą kombinację nietypowych znaków?

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: MultiUpload pliku o nazwie ---.png
#230876
Author: jivanmukta
Date: Wed, 21 Jan 2015 18:34
7 lines
1929 bytes
> I ten plik istnieje w momencie wywołania skryptu? Co jest w tej zmiennej?

var_dump($this->file_temp, file_exists($this->file_temp), (boolean)file_get_contents($this->file_temp));

string(14) "/tmp/phpw5plfr" bool(true) bool(false) 

Plik istnieje ale nie można go odczytać. Masz pomysł dlaczego?
Re: MultiUpload pliku o nazwie ---.png
#230877
Author: Borys Pogoreło
Date: Wed, 21 Jan 2015 21:33
17 lines
1559 bytes
Dnia Wed, 21 Jan 2015 10:34:34 -0800 (PST), jivanmukta@poczta.onet.pl
napisał(a):

>> I ten plik istnieje w momencie wywołania skryptu? Co jest w tej zmiennej?
> 
> var_dump($this->file_temp, file_exists($this->file_temp), (boolean)file_get_contents($this->file_temp));
> 
> string(14) "/tmp/phpw5plfr" bool(true) bool(false) 
> 
> Plik istnieje ale nie można go odczytać. Masz pomysł dlaczego?

Sprawdź, czy nie masz tam ograniczeń przez open_basedir, który nie obejmuje
/tmp. I czy ten plik ma niezerowy rozmiar.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: MultiUpload pliku o nazwie ---.png
#230878
Author: jivanmukta
Date: Fri, 23 Jan 2015 13:46
3 lines
1848 bytes
Plik ---.png miał zerowy rozmiar.
Będę sprawdzał rozmiary plików do uploadu w walidacji formularza bo nie chcę modyfikować kodu CodeIgnitera ani jQuery MultiUpload.
Problem zamknięty. Wiekie dzięki za pomoc!
Re: MultiUpload pliku o nazwie ---.png
#230871
Author: jivanmukta
Date: Mon, 26 Jan 2015 13:51
5 lines
1537 bytes
> To wszystko jest wyłącznie sugestią dla przeglądarki. Od użytkownika może
> przyjść wszystko. Ale po wcześniejszych postach widać, że się tym zanadto
> nie przejmujesz...

Używam $this->input->post(...) które jest, jak czytałem, automatycznie filtrowane. Czy tak jest źle?
Re: MultiUpload pliku o nazwie ---.png
#230872
Author: jivanmukta
Date: Mon, 26 Jan 2015 18:28
1 lines
1621 bytes
W config.php mam: $config['global_xss_filtering'] = TRUE;
Re: MultiUpload pliku o nazwie ---.png
#230873
Author: Borys Pogoreło
Date: Mon, 26 Jan 2015 21:13
17 lines
1648 bytes
Dnia Mon, 26 Jan 2015 05:51:07 -0800 (PST), jivanmukta@poczta.onet.pl
napisał(a):

>> To wszystko jest wyłącznie sugestią dla przeglądarki. Od użytkownika może
>> przyjść wszystko. Ale po wcześniejszych postach widać, że się tym zanadto
>> nie przejmujesz...
> 
> Używam $this->input->post(...) które jest, jak czytałem, automatycznie filtrowane. Czy tak jest źle?

Nie wiem, nie znam filozofii frameworka, którego używasz. Ale to by miało
tyle samo sensu, co magic_quotes, które na szczęście w końcu całkiem
wyleciało z PHP. Poza tym jeśli walisz to później do document.write(), to
i tak łatwo obejść praktycznie dowolne filtrowanie.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads