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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Upload картинки 
V
    Опции темы
Antropoid
Дата 8.1.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 786
Регистрация: 1.6.2006
Где: &Ukraine==Ode ssa

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



Как сделать  на j2me эквивалент следующему запросу:

Код

<html>
<body>
<form name="forma" method="post" 
    enctype="multipart/form-data"
    action="http://myServer.com/send.php?name=X&value=Y">      
      <input name="imagefile"  type="File">
      <input name="button" type="Submit" value="Послать">
</form>
</body>
</html>


подчеркиваю, - пересылается целый файл!

Спасибо.


--------------------
user posted image
Задыхаясь от восторга заниматься чепухой. 
PM MAIL   Вверх
nerezus
Дата 8.1.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



Antropoid, бери WhireShark, используй эту форму для отправки файла.
Изучаешь, что отснифалось, и действуешь по аналогии - через сокеты.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
W0LF
Дата 8.1.2007, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



не надо через сокеты(точнее http и так через сокеты работает, поэтому больше надстроек в протоколе писать придется). Просто пост-запросом. Надо правильно форму саму для файла заполнить, и еще - если мидлет не подписан, то в америке, например, ты не сможешь передать файл больше 2кб. Сейчас с собой нет, но завтра выложу тебе пример, как я отправлял картинку из j2me


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
W0LF
Дата 9.1.2007, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



вот здесь есть пример.
Попробуй, если не получится - пиши, просто пока времени совсем нет smile


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
Antropoid
Дата 10.1.2007, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 786
Регистрация: 1.6.2006
Где: &Ukraine==Ode ssa

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



Все разобрался, надо делать так:
Код

HttpConnection c = null;        
OutputStream os = null;
try {
    c = (HttpConnection)Connector.open("http://host/send.php?...");
    c.setRequestMethod(HttpConnection.POST);
    c.setRequestProperty("Content-Type", "multipart/form-data; boundary=---------------------------7d6d81219125e"); 
    
    String boundary = "---------------------------7d6d81219125e";
    String pngString = new String(filecontent);//byte []filecontent = ...содержит байтовое      
                                                                            //представление картинки

    String message = 
        "--" + boundary + "\r\n" +
        "Content-Disposition: form-data; name=\"imagefile\"; filename=\"pic.png"\"\r\n" +
        "Content-Type: multipart/form-data\r\n\r\n" + pngString + "\r\n" +
        "--" + boundary + "--\r\n";
            
    byte[] messageBody = message.getBytes();      
    c.setRequestProperty("Content-Length", Integer.toString(messageBody.length));
            
    os = c.openOutputStream();
    os.write(messageBody);
    os.flush();
} catch(IOException ioe) {
    ioe.printStackTrace();
}



--------------------
user posted image
Задыхаясь от восторга заниматься чепухой. 
PM MAIL   Вверх
Antropoid
Дата 25.1.2007, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 786
Регистрация: 1.6.2006
Где: &Ukraine==Ode ssa

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



Цитата(W0LF @  8.1.2007,  19:19 Найти цитируемый пост)
если мидлет не подписан, то в америке, например, ты не сможешь передать файл больше 2кб.

можно ссылку на первоисточник, пожалуйста?


--------------------
user posted image
Задыхаясь от восторга заниматься чепухой. 
PM MAIL   Вверх
W0LF
Дата 25.1.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



Хм. Мне это сказал человек из америки, который работает в sun smile


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
Vladimir35
Дата 26.1.2007, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Antropoid @ 10.1.2007,  13:56)
Все разобрался, надо делать так:
Код

...
    c.setRequestProperty("Content-Length", Integer.toString(messageBody.length));
...            

Не очень хорошо разобрались.  smile
Это поле вырежется, если телефон используюет Chunked Transfer Encoding.  А это происходит если размер данных чуть больше 2 кб.

Цитата(Antropoid @ 10.1.2007,  13:56)

если мидлет не подписан, то в америке, например, ты не сможешь передать файл больше 2кб.

Мне кажется, что это не совсем правда, а точнее совсем не правда. Фоток с доказательствами, к сожалению, не нашел.

Это сообщение отредактировал(а) Vladimir35 - 26.1.2007, 10:45
PM MAIL WWW   Вверх
W0LF
Дата 26.1.2007, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



Цитата

Мне кажется, что это не совсем правда, а точнее совсем не правда. Фоток с доказательствами, к сожалению, не нашел

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


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
Vladimir35
Дата 26.1.2007, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(W0LF @ 26.1.2007,  12:55)
Тогда мне пришлось разбивать ее на части по 1.5 кб и тулить серверу, а он в свое время из этих частей собирал картинку.

Т.е. каждый кусочек передовался в отдельном http connection?


Знаете есть такой сервис vipera.com? Сервис американский. Фотки передаются за раз - т.е. одним куском.

Мои предположения основаны на моем сервисе передачи фотографий. Там несколько юзеров американцы. Изображения принимались без проблем. Какой у них провайдер - я не знаю.

Приложение у меня не подписанно. 

Как я уже однажды говорил, эта проблема могла быть связана с кривой настройкой веб-сервера.

Это сообщение отредактировал(а) Vladimir35 - 26.1.2007, 15:55
PM MAIL WWW   Вверх
W0LF
Дата 26.1.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



Цитата

Т.е. каждый кусочек передовался в отдельном http connection?

Не передавался, а передается.
Цитата

ам несколько юзеров американцы. Изображения принимались без проблем. Какой у них провайдер - я не знаю.

Это не по всей америке. У разных провайдеров - по-разному. Так мне по крайней мере сказали.
Цитата

Приложение у меня не подписанно. 

Подписанное приложение так же имеет свои плюсы у каждого провайдера по-разному.
Цитата

Как я уже однажды говорил, эта проблема могла быть связана с кривой настройкой веб-сервера

Этого я не знаю. Но люди говорили, что это не от сервера зависело.


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
Antropoid
Дата 26.1.2007, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 786
Регистрация: 1.6.2006
Где: &Ukraine==Ode ssa

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



2 W0LF , 2 Vladimir35 
Хлобцы! Так кому ж верить то на счет Upload'a большего 2К?!!

2 Vladimir35
Цитата(Antropoid @  10.1.2007,  13:56 Найти цитируемый пост)
Все разобрался, надо делать так:
...
Код

c.setRequestProperty("Content-Length", Integer.toString(messageBody.length));

...


Цитата(Vladimir35 @  26.1.2007,  10:34 Найти цитируемый пост)
Не очень хорошо разобрались.  Это поле вырежется, если телефон используюет Chunked Transfer Encoding.  А это происходит если размер данных чуть больше 2 кб.


на сколько это катастрофично? Наш сервер принимает такие запросы и корректно обрабатывает. P.S. Пока тестировали на N93,K610i.



--------------------
user posted image
Задыхаясь от восторга заниматься чепухой. 
PM MAIL   Вверх
javastic
Дата 26.1.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

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



Цитата

2 W0LF , 2 Vladimir35 
Хлобцы! Так кому ж верить то на счет Upload'a большего 2К?!!


Antropoid, я сталкивался с проблемой что сервер не принимал файлы более 2Кб. Мои исследования показали, что глюк возникает на стороне сервера, а именно на базе Internet Information Server 6.0 на Windows 2003, я даже нашел на сайте Microsoft описание этой баги (ссылку уже не помню), там говорилось о том что происходит переполнение внутреннего стека при обработки Chunked пакетов. Мой хостер отказался ставить BugFix, так что эта проблема я думаю до сих пор, пока не проверял.
Это что касается живого девайса, на эмуляторе происходило тоже самое, но если я переключал http на версию 1.0, то chunck блоков небыло и сервак принимал файл без проблем. В живом телефоне не настроить передачу по протоколу HTTP 1.0 (я пробовал менять заголовки), он всё равно передаёт в версии 1.1
Но! Когда я попробовал залить файл на сервак где стоял Apache (версию не помню, но думаю что не важно),
то файлик спокойно принялся и да же на очень приличной скорости.


Это сообщение отредактировал(а) javastic - 26.1.2007, 17:02


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
W0LF
Дата 26.1.2007, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

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



Вот, что было у меня - 
Я заливал большие файлы на сервер со своего телефона через оператора jeans - все было ок.
А вот в америке, не знаю какой там провайдер, на тот же сервер не заливалось...
Цитата

на эмуляторе происходило тоже самое, но если я переключал http на версию 1.0, то chunck блоков небыло и сервак принимал файл без проблем

У меня тож самое было. 
Может у меня телефон работает через http1.0, хотя я пробовал на Nokia 3250 и на SonyEricsson k750i
smile
Они же тестировали на SonyEricsson z520, Motorola Razr V3, Motorola SLVR, Nokia 6101/6102
И ни на одном не работало. 
 



--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
Iterator
Дата 7.1.2008, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Аналогичная проблема и у меня с отправкой картинки на сервер. У меня отправляется изображение в формате jpeg на сервер jino-net.ru скрипту. Если фотография около 1 кб, то фотка загружается нормально, а если около 5 кб, то телефон выдает исключение Error Data sending. Хотя на эмуляторе с этим же сервером все OK. - телефонс Siemens C65, мидлет не был подписан

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

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

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


 




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


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

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