Obsługa załączników w postach - cuda i dziwy

0

Pierwsza rzecz

Jeśli użytkownik wybierze niedozwolony plik (np. .exe), system nie informuje o tym od razu, a najpierw wysyła ten plik, by po skończeniu uroczyście oznajmić, że taki plik nie jest obsługiwany. Nie wiem czy po wybraniu pliku, ten faktycznie wysyłany jest na serwer, ale przez przypadek wybrałem plik .exe, a po jakichś dziesięciu sekundach dostałem okienko z błędem, więc coś w tym czasie się działo. przydałoby się, aby informacja o nieobsługiwanym pliku pojawiała się bezpośrednio po wybraniu pliku, tak aby nie tracić czasu.

Druga rzecz

Dotyczy pierwszego punktu. Jeśli wybiorę duży załącznik to chwilę trwa jego... nie wiem, wysyłanie na serwer. Po wszystkim kasuję plik z dysku i klikam na przycisk Zapisz w celu wysłania posta. Dostaję błąd, że pliku nie ma na dysku, więc nie można wysłać posta. Skoro po wybraniu pliku coś się dzieje przez chwilę (lub dłuższą chwilę, jeśli plik jest duży) to rozumiem, że plik ten zostaje wysłany na serwer, a skoro zostaje wysłany na serwer, to do czego mu potrzebny plik po stronie klienta?

Trzecia rzecz

Pod listą załączników jest whitelista rozszerzeń, na której nie ma plików .pp, a pomimo tego mogłem taki plik dodać do załączników. Jak widać lista ta nie jest kompletna.


Wątek raczej do dyskusji, bo nie do końca ogarniam jak to działa.

0
furious programming napisał(a):

Pierwsza rzecz

Jeśli użytkownik wybierze niedozwolony plik (np. .exe), system nie informuje o tym od razu, a najpierw wysyła ten plik, by po skończeniu uroczyście oznajmić, że taki plik nie jest obsługiwany. Nie wiem czy po wybraniu pliku, ten faktycznie wysyłany jest na serwer, ale przez przypadek wybrałem plik .exe, a po jakichś dziesięciu sekundach dostałem okienko z błędem, więc coś w tym czasie się działo. przydałoby się, aby informacja o nieobsługiwanym pliku pojawiała się bezpośrednio po wybraniu pliku, tak aby nie tracić czasu.

Walidacja dokonywana jest po stronie serwera. Można też dodać walidację po stronie przeglądarki, nie jestem pewien jednak czy to jest obsługiwane na Twojej przeglądarce. Tym niemniej dobrze by było coś takiego dodać :)

Druga rzecz

Dotyczy pierwszego punktu. Jeśli wybiorę duży załącznik to chwilę trwa jego... nie wiem, wysyłanie na serwer. Po wszystkim kasuję plik z dysku i klikam na przycisk Zapisz w celu wysłania posta. Dostaję błąd, że pliku nie ma na dysku, więc nie można wysłać posta. Skoro po wybraniu pliku coś się dzieje przez chwilę (lub dłuższą chwilę, jeśli plik jest duży) to rozumiem, że plik ten zostaje wysłany na serwer, a skoro zostaje wysłany na serwer, to do czego mu potrzebny plik po stronie klienta?

Hmm, dziwne. Zrobiłem taki test jak mówisz i przeszło ok. https://dev.4programmers.info/Forum/Newbie/8-dodanie_zalacznika?p=19#id19

Trzecia rzecz

Pod listą załączników jest whitelista rozszerzeń, na której nie ma plików .pp, a pomimo tego mogłem taki plik dodać do załączników. Jak widać lista ta nie jest kompletna.

Tutaj jest lista akceptowanych rozszerzeń:
https://github.com/adam-boduch/coyote/blob/master/config/filesystems.php#L86

Jak widzisz, mimo, że podano tutaj listę rozszerzeń, to walidator tak naprawdę porównuje typ MIME pliku. Czyli jeżeli akceptowane jest rozszerzenie .txt (typ text/plain) i chcesz wstawić na serwer np. plik .pp, który też jest text/plain, to walidator go zaakceptuje.

0

Punkt drugi

Utworzyłem przykładowy plik (obrazek), zapisałem na pulpicie. Wybrałem załącznik przy pisaniu posta, kliknąłem na jego nazwę, aby dodało mi link w treści pisanego posta. Usunąłem plik z dysku i kliknąłem przycisk Zapisz - pokazał się dymek z błędem:

error.png

Jak tak patrzę na ten dymek to wydaje mi się, że to dymek przeglądarki, a nie serwisowy. Jeśli ten błąd nie ma nic wspólnego z serwisem to nic nie szkodzi - będę pamiętał o trzymaniu załączników na dysku aż do wysłania posta :]

Ale mam pytanie - czy jak wybierzesz z dysku np. plik .exe to najpierw jest on wysyłany na serwer, a dopiero po zakończeniu wysyłania jest on walidowany? Musisz czekać na kompletne wysłanie aby otrzymać błąd o nieobsługiwanym pliku?

Punkt trzeci

Ok, rozumiem. Tyle że użytkownik chcący dodać załącznik tego nie wie i dla innych plików może kombinować z pakowaniem plików do archiwów :D

0

Jak tak patrzę na ten dymek to wydaje mi się, że to dymek przeglądarki, a nie serwisowy. Jeśli ten błąd nie ma nic wspólnego z serwisem to nic nie szkodzi - będę pamiętał o trzymaniu załączników na dysku aż do wysłania posta :]

Tak, to jest dymek przeglądarki. Wydaje mi się że na nowszych przeglądarkach nie ma tego problemu.

Ale mam pytanie - czy jak wybierzesz z dysku np. plik .exe to najpierw jest on wysyłany na serwer, a dopiero po zakończeniu wysyłania jest on walidowany? Musisz czekać na kompletne wysłanie aby otrzymać błąd o nieobsługiwanym pliku?

Tak.

Punkt trzeci

Ok, rozumiem. Tyle że użytkownik chcący dodać załącznik tego nie wie i dla innych plików może kombinować z pakowaniem plików do archiwów :D

Szczerze mówiąc, to też musiałem zajrzeć do dokumentacji, aby sprawdzić jak ten walidator działa. Przeczytałem w niej, to co napisałem w poprzednim poście :)

0

Tak.

No to kicha, bo jak wybiorę nieobsugiwany plik o wadze np. 1GB to będę czekał pół dnia na odpowiedź, że mi tego nie doda :]

Przyda się walidacja po stronie klienta, dotycząca rozszerzeń/MIME oraz rozmiaru plików.

Można też dodać walidację po stronie przeglądarki, nie jestem pewien jednak czy to jest obsługiwane na Twojej przeglądarce.

Sugeruję zmianę w celu polepszenia jakości użytkowania serwisu dla wszystkich - ja sobie jakoś poradzę.

Szczerze mówiąc, to też musiałem zajrzeć do dokumentacji, aby sprawdzić jak ten walidator działa.

No właśnie - użytkownik raczej nie będzie przeglądał dokumentacji. Coś trzeba z tym opisem zrobić.

1 użytkowników online, w tym zalogowanych: 0, gości: 1