Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP][AJAX]Kodowanie
Forum PHP.pl > Forum > Przedszkole
neo1986kk
Witam, mam taki problem z kodowaniem znaków, z którym już nie mam pojęcia jak sobie poradzić i mam nadzieję że wypróbowałem juz wszystkiego...

jest tak: index.php --> ajaxem otwieram plik flash.php gdzie jest upload zdjęć we flashu... no i teraz by było wszystko proste gdybym mógł plik przed zapisaniem przekonwertować na UTF-8 i po sprawie, ale to jest flash i nie mam pojęcia jak to zrobić. Działa on na zasadzie pobierania nazwy pliku i zapisania jej.

Gdy otwieram plik flash.php ręcznie w przeglądarce i tam uploaduje plik, wszystko jest ok, ale przez ajaxa sie wszystko sypie.... teraz tak dlaczego się sypie...
dlatego, że potrzebuje przesunąć plik z folderu upload do folderu pliki_galerii i tu jest wlasnie problem....

Wszystko dziala tak ajaxem otwieram flasha z flasha ajaxem przesyłam nazwę pliku do conwert.php, a ten plik zmniejsza mi fotki. i właśnie on generuje błąd...

$_POST['file_name'] // zdj%u0119cie.jpg a w upload jest plik ZdjÄ™cie.jpg i ja już poprostu nie mam pojęcia co moge z tym zrobić... jeśli ktoś wie to proszę o odpowiedź, pozdrawiam.
Ghost_78
przemysl kwestie czy potrzebne Ci sa polskie znaki w nazwach plikow. raczej nie stosuje sie takich rozwiazan.
neo1986kk
no to umówmy się że nie potrzebuje ale to bym musiał we flashu zmieniać nazwę chyba:/
Ghost_78
ale czegos nie rozumiem do konca
jak uploadujesz plik ? masz formularz na stronie ? za pomocą ajaxa wysyłasz plik na serwer i co sie dalej dzieje ? odpalasz plik flash.php czy aplikacje flash ? czy jak ?
neo1986kk
aplikacje flash, która mi uploaduje pliczek, i nie wiem czy da się zmienić nazwę bo niby zmieniłem
Fileref.name=date.getTime();

a nazwa cały czas jaka była taka jest:/ czyli oryginalna może też dlatego że w skrpcie upload mam $file[data][name]?
Ghost_78
zrob sobie jakas generowana losowo nazwe pliku np
  1. $nazwa_pliku= md5(mktime());

to da rozwiaze Ci 2 problemy:
1 - polskie znaki
2 - jak bedzie ktos chcial wrzucic plik z taka nazwa jaka juz istnieje to nie nadpisze istniejacego pliku
neo1986kk
no wszystko ładnie pięknie, tylko że ja potrzebuję z tą nazwą pliku wrócić do flasha, który mi ją wyśle po załadwoaniu do następnego ajaxa czyli do convert...

flash pobiera nazwę --> upload.php

jeśli upload.complete --> flash daje fileref.name do javascript, a javascript przesyła ją postem do convert.php
Ghost_78
a do czego jeszcze to przekierowanie do convert ? nie mozesz tego zrobic w pliku upload.php ?
neo1986kk
Niie mogę bo to idzie z flasha, próbowałem to zrobić w jednym pliku ale nie da rady, tak samo teraz zrobiłem zmianę nazwy na losową i i tak zapisuje nazwę którą flash pobrał ze zdjęcia.
Ghost_78
pokaz skrypt upload.php i powiedz co ma robic dokladnie ten convert
neo1986kk
upload

  1.  
  2. if (is_uploaded_file($_FILES['Filedata']['tmp_name'])) {
  3.  
  4. if(!is_dir("./uploads")) mkdir("./uploads", 0755);
  5. //move the uploaded file
  6. move_uploaded_file($_FILES['Filedata']['tmp_name'], "./uploads/".$_FILES['Filedata']['name'] ); //tutaj sie nic nie dzieje po zmianie nazwy, zapisuje tak jak zapisywal, czyli nazwę z pliku, ale to wyczytalem na forum flasha ze moze lepiej przesylac Getem, chociaz mi to w sumie nic nie dalo, a jedyne dlaczego chce tego flasha to dlatego ze poprostu szybciej sie ładują pliki
  7. chmod("./files/".$_FILES['Filedata']['name'], 0777); //,
  8. }




convert

  1.  
  2. $plik_nazwa=$_POST['imagejpg']; //pobierany z flasha ajaxem
  3. $orginalny_obrazek='uploads/'.$plik_nazwa;
  4. $docelowa_szerokosc=500 ;
  5. $docelowa_wysokosc=370;
  6. $jpeg_quality = 90;
  7.  
  8. // Pobranie orginalnych parametr?? kalkulacja skali
  9. list($szerokosc, $wysokosc) = getimagesize($orginalny_obrazek);
  10. if ($szerokosc>500)
  11. {
  12. $xskala=$szerokosc/$docelowa_szerokosc;
  13. $yskala=$wysokosc/$docelowa_wysokosc;
  14.  
  15. // Kalkulacja nowego rozmiaru
  16. if ($yskala>$xskala){
  17. $nowa_szerokosc = round($szerokosc * (1/$yskala));
  18. $nowa_wysokosc = round($wysokosc * (1/$yskala));
  19. }
  20. else {
  21. $nowa_szerokosc = round($szerokosc * (1/$xskala));
  22. $nowa_wysokosc = round($wysokosc * (1/$xskala));
  23. }
  24.  
  25. // Zmiana rozmiaru orginalnego obrazu
  26. $obraz_zmiana_wielkosci = imagecreatetruecolor($nowa_szerokosc, $nowa_wysokosc);
  27. $obrazek_tymczasowy = imagecreatefromjpeg ($orginalny_obrazek);
  28. imagecopyresampled($obraz_zmiana_wielkosci, $obrazek_tymczasowy, 0, 0, 0, 0, $nowa_szerokosc, $nowa_wysokosc, $szerokosc, $wysokosc);
  29.  
  30. imagejpeg($obraz_zmiana_wielkosci,'gallery/'.$plik_nazwa.'',90); }
  31.  

Ghost_78
a starasz sie wgrac pliki o roznych nazwach questionmark.gif zapisuja sie? czy caly czas ten sam wgrywasz? pytam dlatego ze nie wiem czy dobre masz uprawnienia katalogu w ktorym zapisujesz. usun moze wszystko z niego i zobacz czy sie cos tam zapisze.

i teraz tak:
  1. chmod("./files/".$_FILES['Filedata']['name'], 0777); // czemu wyzej masz w katalou ./upload a tu uprawnienia zmieniasz w katalogu ./files


  1. //testowales tak ?
  2. move_uploaded_file($_FILES['Filedata']['tmp_name'], "./uploads/obrazek.jpg");

kolejna sprawa - to co robisz z konwersja zrob jednak w tym samym pliku - bedzie lepiej i na bank sie da nawet przeklej ten kod z convert i nazwe pliku daj ta z ktora sie zapisuje plik
neo1986kk
przekleiłem i nic, wgrywam różne pliki i sie zapisują, upload plików leci z fasha

selectedfileref.upload('upload.php') - tutaj nawet nic nie przekazuje oprócz fileref

przy uploadowaniu leci progress, a przy 100 % wyswietla komunikat: file is upload!

nie robi nic wiecej, kod pliku upload kończy się dla niego wraz z wgraniem pliku na serwer.

moge tego nie robić ajaxem i wtedy nie bede mial problemu z nazwą pliku bo najwyzej nazwy bede zmieniał przy konwercie i to chyba bedzie najlepsze rozwiząnie...


jak wgra na serwer plik to automatem przechodzi na convert to w sumie nawet nie ma jak sie zatrzymać zeby wgrać nową nazwę do flasha, wiec jeszcze jest rozwiązanie żeby przed uploadem zmienić nazwę pliku ale to nie wiem jak....
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.