Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > Отправка фаила через апплет


Автор: ShurikA 4.11.2005, 19:32
Можно ли отправить фаил на сервер через апплет?
И как?

smile

Автор: batigoal 4.11.2005, 20:14
Открыв сокетное соединение.

Поищи по форму, эта тема поднимается регулярно.

Автор: ShurikA 4.11.2005, 20:19
Цитата(Lamer @ 4.11.2005, 19:14)
Открыв сокетное соединение.

Поищи по форму, эта тема поднимается регулярно.

Честно не нашёл, может не так ищу.

Автор: batigoal 4.11.2005, 20:29
Например:
http://forum.vingrad.ru/index.php?showtopic=57099
http://forum.vingrad.ru/index.php?showtopic=37951

А вообще, это будет обычное сетевое соединение, так что можно просто посмотреть в книге. Надо будет только еще разрешить апплету читать файлы с локального компа.

Автор: ShurikA 4.11.2005, 20:56
В книгах есть только отпривка переменных через соединение.А вот с фаилами дело обстоит по другому, так как и HTML аплоад фаилов видит по другому.

Автор: batigoal 4.11.2005, 23:41
Цитата(ShurikA @ 4.11.2005, 21:56)
А вот с фаилами дело обстоит по другому, так как и HTML аплоад фаилов видит по другому

Видимо, ты имел в виду HTTP upload?
Я говорю не об этом, а об обычном сетевом соединении.

Автор: ShurikA 5.11.2005, 00:17
Цитата(Lamer @ 4.11.2005, 22:41)
HTTP upload

Да, прав, Это то что мне нужно.

Автор: Stampede 5.11.2005, 00:24
Есть широко используемая библиотечка Джейсона Хантера (Jason Hunter), автора книги Java Servlets. Как ею пользоваться в самом простом виде - например, можно прочитать в статье этого же автора на JavaWorld:

http://www.javaworld.com/javaworld/jw-06-2001/jw-0622-filters-p4.html

Там же можно закачать саму библиотечку и исходники примеров использования.

Успехов smile

Автор: ShurikA 5.11.2005, 15:55
Stampede
Огромное спасибо.

Автор: ShurikA 20.11.2005, 18:59
Вернёмся к нашим баранам smile
То что дал Stampede это не совсем тоб и от других я так ничего и не понял.
Нужно отправить фаил через апплет не пользуясь serverlet.

Автор: fvad 22.11.2005, 01:39
Может кто - нибудь в курсе?
Проблема такая: При открытии СОКЕТА из апплета, выдается ошибка APPLET.SECURITY.EXEPTION
Если ту же программу создаю, как STANDALONE, все работает отлично.
Может надо подписать апплет, или есть ограничения в браузере?

Автор: batigoal 22.11.2005, 08:57
Цитата(fvad @ 22.11.2005, 02:39)
Может надо подписать апплет

Думаю, это поможет.

(На будущее - задавайте вопросы в отдельной теме)

Автор: ShurikA 22.11.2005, 13:33
Я перефразирую вопрос по новой:
Нужно осуществить HTML Upload, так что бы со стороны клиента был апплет, а принимал PHP.
Что и каким образом должен делать апплет?

Автор: korob2001 23.11.2005, 22:55
Я вообще-то пока в Java не сильно разбираюсь, но мне кажется такой способ вполне допустим:

1. Апплет открывает файл, который ты хочешь переслать.
2. Читает его.
3. Отправляет через сокет на сервер.
4. PHP программа получат данные от апплета через сокет.
5. Создаёт файл и записывает в него полученные данные.

Но для того, что бы твой апплет мог открыть файл на клиенте, тебе нужно подписать его.

ЗЫ: Если я в чём-то заблуждаюсь, подскажите. Просто мне тоже эта тема очень интересна.
ЗЫЫ: А почему ты не хочешь создать обычную HTML форму для выгрузки файла?

Автор: ShurikA 23.11.2005, 23:58
Цитата(korob2001 @ 23.11.2005, 21:55)
А почему ты не хочешь создать обычную HTML форму для выгрузки файла?

1. Не известно сколько фаилов нужно будет загружать, может быть и 100:)
2. Красиво, и динамично.
3. Опыт в JAVA.


Цитата(korob2001 @ 23.11.2005, 21:55)
PHP программа получат данные от апплета через сокет.

Не думаю что это так возможно, так как PHP принимает поля <input type=file ...> как массив $_FILES а не как stream содержащих в нём данных. хотя может быть и да, но не это цель. Цель что бы со стороны сервера принималось так как будто бы нажали submit обычной формы HTML включающей в себя <input type=file ...> (или несколько).

Автор: LSD 24.11.2005, 00:05
Ежели тебе нужен обычный POST, то посмотри http://forum.vingrad.ru/index.php?showtopic=53122 тему.

Автор: ShurikA 24.11.2005, 00:20
POST постом, тут всё ясно пока идёт речь об обычных переменых: Всё в стринг и послали...
а с фаилами что, тоже в один стринг пихать???? smile
тяжело себе представить...

Автор: korob2001 24.11.2005, 00:38
Цитата

1. Не известно сколько фаилов нужно будет загружать, может быть и 100:)

Это не имеет никакого значения, сколько тебе нужно файлов, столько и грузи их на сервер, хоть 100, хоть 1000
Цитата

2. Красиво, и динамично.

Вот сейчас появилась свободная минута и опять открыл учебник "JAVA Библиотека профессионала" от Sun Microsystems Press авторы Кей С. Хорстманн, Гари Корнел. Так вот, что пишут по поводу апплетов, стр. 26
Спомощью апплетов на WEB страницу можно добавлять новые кнопки и текстовые поля. Однако такие апплеты медленно загружаются по телефонной линии. Почти то же самое можно сделать с помощью языка Dynamic HTML, форм языка HTML или языка сценариев, например языка, JavaScript. Разумеется первые апплеты предназначались для анимации: вращающиеся глобусы, танцующие персонажи мультфильмов, вычурные тексты и т.п. Однако большинство из перечисленного могут делать и анимированные GIF-файлы, а язык Dynamic HTML в сочетании с разработкой сценариев делает намного больше чем апплеты.
Цитата

3. Опыт в JAVA.

Вот это действительно аргумент с которым нельзя не согласиться.
Цитата

Не думаю что это так возможно, так как PHP принимает поля <input type=file ...> как массив $_FILES а не как stream содержащих в нём данных. хотя может быть и да, но не это цель.

Да, но это не относится к сокетам, а PHP, насколько я знаю, замечательно с ними работает, Java тоже. Поля в апплете, это тоже далеко не поля <input ....>

Автор: ShurikA 24.11.2005, 00:57
Цитата(korob2001 @ 23.11.2005, 23:38)
...JavaScript.

Почти не знаю, а то что знаю ненавижу, хотя может потому что не знаюsmile

Цитата(korob2001 @ 23.11.2005, 23:38)
Поля в апплете, это тоже далеко не поля <input ....>

просто привёл аналог из HTML.

smile

И ответа на свой вопрос я так и не добился... smile

Автор: ShurikA 24.11.2005, 16:43
У меня появилась такая идея, если возможно.
с помощью JAVA создать обычную HTML форму (со всем чем нужно) в той же самой страничке где находится апплет, и дальше с ней делать всё что угодно.

Автор: korob2001 29.11.2005, 03:38
А зачем тебе апплет, если ты будешь генерировать форму?

ЗЫ: ещё раз повторюсь, почитай про сокеты TCP/IP. Забудь про теги form, тебе нужна передача данных на более низком уровне. Если будет желание, давай попробуем вместе решить эту проблему. Нам понадобится 2 программы - сервер и клиент, где сервер - это твоя PHP программа, а клиент - Java апплет. Сервер могу написать на Perl, так как с PHP не знаком. С другой стороны не в этом суть, сейчас важно понять принцип передачи данных через сокеты, а не язык реализации. PHP тоже прекрасно работает с сокетами, потому если поймёшь принцип, то запросто сможешь реализовать сервер на нём.

Я просто Java тоже совсем недавно начал изучать, потому мне тоже было бы интересно попробовать решить эту задачу.

Автор: ShurikA 29.11.2005, 03:49
korob2001
Вот нашёл я такое дело smile :
Спрсил человека из SUN, и вот ответ:
Цитата

it's simple. All you need to do is to create a POST request instead of a GET request. In the HTTP Body, use the MIME standard to encapsulate one or more files (the same ways email attachements are encoded).

The best way to learn is to use a tcp sniffer and try some uploads for yourself. Then check the protocol RFC1867.

regards
Mike


ищем в GOOGLE (MIME standard), и находим:
http://www.mindspring.com/~mgrand/mime.html

так что ты прав.
Я уже начал писать... smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)