![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 154 Pomógł: 0 Dołączył: 13.07.2007 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
hej mam metodke : move_uploaded_file($_FILES['Filedata']['tmp_name'], $_POST['path'].$_FILES['Filedata']['name']);
i teraz za jej pomocą uploaduje plik na serwer przy użyciu flesza/swf : http://flash-db.com/Tutorials/upload/upFiles.php?page=1 i mam problem z polskimi znakami, zamienia mi je na krzaczki uploaduje plik : mój plik.jpg i na serwerze zapisuje go : mĂłj plik.jpg dlaczego? Błąd mam po stornie flesza czy move_uploaded_file() nie daje rady? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 386 Pomógł: 25 Dołączył: 28.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zbadałem dokładniej sprawę i oto wnioski (IMG:style_emoticons/default/smile.gif) . Znaki są konwertowane przed wysłaniem przez przeglądarkę na kodowanie zgodne z tym które jest na stronie www. Tzn. że jak na stronie mam utf-8 to wyśle mi nazwę w utf-8. Testowałem na FF 3.5 i na Operze 10.10. Na IE powinno być podobnie. Używam linuxa i mam ustawione kodowanie w systemie na utf-8. Dlatego gdy strona jest w kodowaniu utf to w $_FILES dostaje nazwę pliku w tymże kodowaniu i move_uploaded_file() zapisuje elegancko polskie znaki. Gdy zmienię kodowanie na powiedzmy iso-8859-2 i wyślę plik to funkcja move_uploaded_file() dostanie nazwę pliku z kodowaniem iso i w systemie pokaże mi krzaki zamiast polskich znaków. Dlatego jeśli masz kodowanie znaków w systemie inne niż na stronie z której idzie plik musisz konwertować kodowania. Możesz użyć iconv() albo mb_convert_encoding() (info w manualu). Tak mi się wydaje że flash skoro to wynalazek amerykansky (IMG:style_emoticons/default/smile.gif) to pewnie wysyła wszystko w kodowaniu iso-8859-1. Możesz potestowac co dostajesz skryptem niżej i sprawdzać jakie kodowanie dostajesz od flasha zmieniając ręcznie kodowanie strony w przeglądarce już po wysłaniu pliku.
To kod którym testowałem:
Ten post edytował piotrekkr 17.12.2009, 16:43:36 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 14:47 |