eRIZ's weblog

PHP, webdesign, Linux, Windows i inne, bo nie samym chlebem człowiek żyje

net2ftp: Problemy z JUpload w Operze

Korzystam od dłuższego czasu z klienta webftp net2ftp. Owszem, mógłbym wszystko posyłać FTP-em, ale ze względu na idiotycznego ISP-a, który twierdzi, że Internet = port 80, to jestem zmuszony przepychać wszystkie pliki przez przeglądarkę. Ze względu na to, że stabilność wysyłania w ten sposób jest tragiczna, to muszę rozwiązywać problem w inny sposób. Do tej pory, najlepszym rozwiązaniem jest dodawany do net2ftp aplet JUpload. I wszystko by było OK, gdyby działało pięknie pod Operą. Ale tak nie było. Natomiast, we Flocku wszystko działało… Tak nie mogło być, w mojej ulubionej przeglądarce ma działać wszystko. :D

Po kilku minutach gapienia się w konsolę Javy, wysnuciu wniosków, opracowałem działające rozwiązanie.

Meritum problemu była niemożność znalezienia przez JVM apletu do uruchomienia.

W pliku jupload1.template.php używanego skina kod wywołujący aplet przedstawia się następująco:

  1. <applet
  2.         code="JUpload/startup.class"
  3.         archive="plugins/jupload/jupload.jar"
  4.         width="650"
  5.         height="350"
  6.         mayscript
  7.         name="JUpload"
  8.         alt="JUpload applet">

W aplikacjach Geckowatych (nie wiem, jak jest w IE) ten kod działa, natomiast w Operze wysypuje błąd Applet not found i podaje za szukaną ścieżkę wymysły w postaci http://domena.pl/net2ftp/JUpload/startup.class, co nie powinno mieć miejsca – owa ścieżka – JUpload/startup.class – odwołuje się do względnego położenia klasy w słoiku, którą Opera traktuje jako bezwzględną.

Rozwiązanie:

  1. <applet
  2.         code="JUpload.startup"
  3.         archive="jupload.jar""plugins/jupload"
  4.         width="650"
  5.         height="350"
  6.         mayscript
  7.         name="JUpload"
  8.         alt="JUpload applet">

Opera inaczej interpretuje ścieżki wewnątrz JAR-ów – bardziej po Javovemu (w manifestach, jako separatora, używa się . (kropki)). Myślę, że to wina większego zintegrowania JVM z przeglądarką (wszak pozostałe przeglądarki wywołują JRE poprzez wtyczki).

Najważniejsze, że działa. ;)

edit: nie wiem, co było grane, ale powyższy kod bez problemu działał przez HTTPS, ale na HTTP… już nie. :/

Wykombinowałem coś takiego:

  1. <applet
  2.         code="JUpload.startup"
  3.         archive="plugins/jupload/jupload.jar"
  4.         width="650"
  5.         height="350"
  6.         mayscript
  7.         name="JUpload"
  8.         alt="JUpload applet">

…i działa. :|

1 komentarz

dopisz swój :: trackback :: RSS z komentarzami

RSS z komentarzami :: trackback

Skomentuj

Możesz używać znaczników XHTML. Dozwolone są następujące tagi: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Wszystkie komentarze przechodzą przez moderację oraz filtry antyspamowe. Nie zostanie opublikowany komentarz, jeśli:

  • Jego treść obraża kogokolwiek.
  • W treści znajdują się wulgaryzmy i słownictwo ogólnie uznane za nieprzyzwoite.
  • Mam wątpliwości co do autora wpisu (Wszelkie anonimy są kasowane - niezależnie od zawartości - wpisz prawdziwy e-mail. Jeśli usunąłem, Twoim zdaniem, komentarz niesłusznie - daj znać). Zdarza się, iż sprawdzam kim jest komentujący.
  • Zawiera jakąkolwiek formę reklamy.

Szufladka