ParanoyaBLOG

programmare necesse est,
vivere non est necesse

 

PDW Filebrowser – filtr *.* przy swfupload

 

W PDW Filebrowsera pod TinyMCE brakuje możliwości dodania filtru ‚*.*’ tak aby okno wskazywania plików pokazywało wszystkie pliki.
 
Ustawienie filtru ‚*’ dla $extension_whitelist powoduje, że w oknie wyboru pliku wszystkie pliki są widoczne lecz żaden uploadowany plik fizycznie nie wgrywał się na dysk.
 
Okazuje się, że w kodzie listę rozszerzeń plików „rozbijana” jest na tablicę używając przecinka jako separatora. Następnie przy wgrywaniu pliku wydziela z niego rozszerzenie i sprawdza czy takowe istnieje w powstałej przez rozbicie tablicy. Jeśli istnieje – plik jest wgrywany na dysk serwera do odpowiedniego katalogu. Jeśli nie ląduje gdzieś w kosmosie. Ustawiając $extension_whitelist na ‚*’ po takim rozbiciu uzyskuje się tablicę rozszerzeń, w której jedynym elementem jest *. Skrypt porównując rozszerzenie pliku z zawartością tej tablicy nie znalazł podobieństw i uznał, że rozszerzenie nie jest dozwolone … nie wgrał plików na serwer.
 
Problem można obejść dopisując kilka prostych linijek kodu w pliku upload.php (katalog swfupload) w linii 78.
 
Linie:
 

$is_valid_extension = false;
$allowedExtensions = explode(',', $extension_whitelist);

 
Zmieniamy na:
 

if ($extension_whitelist == '*') {
 $is_valid_extension = true;
} else {
 $is_valid_extension = false;
 $allowedExtensions = explode(',', $extension_whitelist);
}

 
Proste, łopatologiczne … acz skuteczne :P

 

Brak komentarzy to “PDW Filebrowser – filtr *.* przy swfupload”

Komentarze zostały wyłączone.

Zostaw komentarz