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
Author: jivanmukta
Date: Tue, 20 Jan 2015 17:16
Date: Tue, 20 Jan 2015 17:16
19 lines
1987 bytes
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
Author: Borys Pogoreło
Date: Tue, 20 Jan 2015 20:27
Date: Tue, 20 Jan 2015 20:27
31 lines
1928 bytes
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
Author: jivanmukta
Date: Wed, 21 Jan 2015 05:35
Date: Wed, 21 Jan 2015 05:35
14 lines
1639 bytes
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
Author: Borys Pogoreło
Date: Wed, 21 Jan 2015 16:47
Date: Wed, 21 Jan 2015 16:47
26 lines
1602 bytes
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
Author: jivanmukta
Date: Wed, 21 Jan 2015 18:34
Date: Wed, 21 Jan 2015 18:34
7 lines
1929 bytes
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
Author: Borys Pogoreło
Date: Wed, 21 Jan 2015 21:33
Date: Wed, 21 Jan 2015 21:33
17 lines
1559 bytes
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
Author: jivanmukta
Date: Fri, 23 Jan 2015 13:46
Date: Fri, 23 Jan 2015 13:46
3 lines
1848 bytes
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
Author: jivanmukta
Date: Mon, 26 Jan 2015 13:51
Date: Mon, 26 Jan 2015 13:51
5 lines
1537 bytes
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
Author: jivanmukta
Date: Mon, 26 Jan 2015 18:28
Date: Mon, 26 Jan 2015 18:28
1 lines
1621 bytes
1621 bytes
W config.php mam: $config['global_xss_filtering'] = TRUE;
Re: MultiUpload pliku o nazwie ---.png
Author: Borys Pogoreło
Date: Mon, 26 Jan 2015 21:13
Date: Mon, 26 Jan 2015 21:13
17 lines
1648 bytes
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