Показать сообщение отдельно
Старый 16.02.2010, 17:08
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 15  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Content Type должен соответствовать типу содержимого (data). У вас же содержимое — это экземпляр URLVariables (application/x-www-form-urlencoded).
Поэтому сначала приведите содержимое к необходимому виду (multipart/form-data) в соответствии с rfc1867
Пример есть в хелпе по классу FileReference.

upd:
Код:
POST /handler.cfm HTTP/1.1 
  Accept: text/*
  Content-Type: multipart/form-data; 
  boundary=----------Ij5ae0ae0KM7GI3KM7 
  User-Agent: Shockwave Flash 
  Host: www.example.com 
  Content-Length: 421 
  Connection: Keep-Alive 
  Cache-Control: no-cache
  
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
  Content-Disposition: form-data; name="Filename"
  
  MyFile.jpg
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
  Content-Disposition: form-data; name="Filedata"; filename="MyFile.jpg"
  Content-Type: application/octet-stream
  
  FileDataHere
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
  Content-Disposition: form-data; name="Upload"
  
  Submit Query
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
Т.е. вам необходимо добавить в определение contentType информацию о границе, допустим "multipart/form-data; boundary=----------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7". Или любое другое сочетание символов, которое с маленькой вероятностью может встретиться в другом месте запроса.
Ну а затем в ByteArray все остальное запихать. Можно ограничиться этим:
Код:
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
  Content-Disposition: form-data; name="Photo""
  Content-Type: application/octet-stream
  
  FileDataHere
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
ByteArray#writeUTFBytes() и ByteArray#writeBytes() в помощь.


Последний раз редактировалось udaaff; 16.02.2010 в 18:00. Причина: опечатки