Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> загрузка файла по FTP 
:(
    Опции темы
furstenberg
Дата 17.5.2009, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



Здравствуйте, подскажите как загрузить файл по FTP.
Сейчас делаю так:

Код

try
     {
     StreamConnection fc=(StreamConnection)
        Connector.open(" ftp://[email protected]:[email protected]");
    
       DataOutputStream dos=fc.openDataOutputStream();
     
     dos.write("пробная запись".getBytes(),0,13);
     
     }
     catch (Exception e) {};

Строку я записал в поток, а как сделать чтобы эта строка записалась в файл?

для тестирования предварительно я зарегистрировался на беспл файлов сервере, дали мне пароль на закачку:
Вы можете закачать свои файлы любым FTP клиентом:

    * Сервер: XXX.xxx250.ifolder.ru
    * Логин: [email protected]
    * Пароль: 6XnXoXdX
    * Url для закачки: ftp://[email protected]:[email protected]
После закачки файлов нажмите "Подтвердить".

Вызов процедуры происходит без ошибок. Но и при подтверждении сообщается что файлы не записаны.
Может подскажите более простой способ для тестирования.
PM MAIL   Вверх
Окунь
Дата 18.5.2009, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.2.2007
Где: Москва

Репутация: 2
Всего: 2



ftp - это целый протокол
наивно чего-то ожидать, просто послав какие-то байты на фтп-сервер
PM MAIL   Вверх
furstenberg
Дата 18.5.2009, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



Т.е получается надо с нуля  делать обработку протокола FTP? Но у Буткевича на стр 147 при описании класса Connector написано что он поддерживает протоколы: http, Socket, datagram, file, FTP, comm.
Http тоже протокол, на него  ведь не наивно чего-то ожидать, просто послав какие-то байты на http-сервер! Раз в документации написано, что поддерживает FTP, значит механизмы взаимодействия уже реализованы и велосипед изобретать не надо. Я так понимаю.
PM MAIL   Вверх
Окунь
Дата 19.5.2009, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.2.2007
Где: Москва

Репутация: 2
Всего: 2



Connector всего лишь открывает Connection
Чтобы работать с конкретным протоколом нужен соответствующий подкласс класса Connection. Для HTTP такой в MIDP есть: HttpConnection. А для FTP - нет. 
С помощью же StreamConnection ты можешь только слать байты на сервер и получать непонятные быйты в ответ.

Кстати, я бы поосторожней относился к такой "документации", как Буткевич.

Это сообщение отредактировал(а) Окунь - 19.5.2009, 02:20
PM MAIL   Вверх
furstenberg
Дата 19.5.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



Спасибо. А ещё вот такой вопрос: скачал класс simpleftp для работы с FTP, а куда его надо скопировать , чтобы пользоваться им (распаковал jar и копировал в C:\WTK22\lib\ , потом в C:\WTK22\apps\WriteMIDlet\lib\, но при использовании пишет
 package org.jibble.simpleftp does not exist import org.jibble.simpleftp.*; )?
В документации написано 
To use SimpleFTP, simply add simpleftp.jar to your classpath and import the package in whichever classes will use it. Я добавляю его в C:\WTK22\lib\ и ничего, всё та же ошибка.

Это сообщение отредактировал(а) furstenberg - 19.5.2009, 12:47
PM MAIL   Вверх
eugine_s
Дата 19.5.2009, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



Цитата(furstenberg @  19.5.2009,  11:47 Найти цитируемый пост)
распаковал jar и 


Зачем??? Ты в папках C:\WTK22\lib\ видел хоть один .class файл или все таки там лежат .jar файлы??? 

Я так понимаю, что ты используешь WTK, поэтому положи весь jar файл в папку C:\WTK22\apps\WriteMIDlet\lib\ - кажется там больше ничего не нужно (WTK сам заберет все либы из папки lib)
PM MAIL   Вверх
furstenberg
Дата 19.5.2009, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



Да, но теперь в консоли другая ошибка:

Error preverifying class org.jibble.simpleftp.SimpleFTP
    VERIFIER ERROR org/jibble/simpleftp/SimpleFTP.stor(Ljava/io/File;)Z:
Cannot find class java/io/FileInputStream
Build failed
Я посмотрел в SimpleFTP.java из  SimpleFTP.jar там используется класс import java.net.*;. Может из-за него?Получается его тоже надо скопировать туда же? Искал , но не нашёл его нигде.

Это сообщение отредактировал(а) furstenberg - 19.5.2009, 13:22
PM MAIL   Вверх
eugine_s
Дата 19.5.2009, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



Цитата(furstenberg @  19.5.2009,  13:22 Найти цитируемый пост)
Я посмотрел в SimpleFTP.java из  SimpleFTP.jar там используется класс import java.net.*;


А кто вам сказал, что этот SimpleFTP подходит для J2ME? Он написан для J2SE. Хотя на самом деле достаточно просто может быть переделан в версию для J2ME.

пакета java.net - в J2me нет. Поэтому, все что используется от туда нужно заменить на аналоги или дописать свою реализацию.

Код

        socket = new Socket(host, port);
        reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));


Вместо Socket - использовать SocketConnection 

Код

SocketConnection sc = (SocketConnection)
                         Connector.open("socket://host.com:79");
InputStream is  = sc.openInputStream();
OutputStream os = sc.openOutputStream();


Вместо BufferedReader, BufferedWriter - нужно будет что-то свое сделать.

FileInputStream -  в j2me для этого есть FileConnection

BufferedInputStream, BufferedOutputStream - тоже нет.
StringTokenizer - тоже нет


P.S. Когда-то встречал реализацию FTP клиента (кажется даже simple FTP) для j2me.

Добавлено через 2 минуты и 49 секунд
P.P.S. советую не тратить время на поиск java.net для j2me, так как даже если найдете, то телефон может не разрешить добавлять новые классы в java.* и javax.* пакеты

Добавлено через 10 минут и 18 секунд
Цитата(eugine_s @  19.5.2009,  14:03 Найти цитируемый пост)
P.S. Когда-то встречал реализацию FTP клиента (кажется даже simple FTP) для j2me.


Собственно, вот оно - motoftp - можно посмотреть как сделали из simple FTP версию пригодную для j2me

Это сообщение отредактировал(а) eugine_s - 19.5.2009, 14:04
PM MAIL   Вверх
furstenberg
Дата 19.5.2009, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



Большое спасибо.
PM MAIL   Вверх
furstenberg
Дата 27.5.2009, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



Вот нашёл библиотеку то что нужно на SocketConnection:

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  Ftp2Me_bin_0.2beta.zip 7,79 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.