Загрузить файл на сервер через rtmps+java

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

Я попытался отправить на сервер только FileReference, и запрос был выполнен, но на стороне сервера я получил только пустой ObjectMap. Я знаю, что могу использовать URLRequest, но мне нужен именно запрос rtmps.

Мой гибкий код:

public function uploadFile(file:FileReference):void{
     NetConnection nc = new NetConnection();
     nc.client = this;
     nc.proxyType = "best"; 
     nc.connect(connectionURL, "3.0", "userName", "password");
     nc.call("uploadFile", null, file);
}

Мой Java-код:

public void uploadFile(Object param) { // <-- param is empty ObjectMap
    log.info("Upload file.");
    // save file on server
}

Может кто-нибудь помочь мне?


person Vartlok    schedule 16.04.2014    source источник


Ответы (1)


Java не знает, как сопоставить класс FileReference с эквивалентом Java. Во flex получите ByteArray из FileReference и отправьте его на сервер. Java умеет работать с массивом байтов. Вы можете делать с ним на сервере все, что вам заблагорассудится.

person Robin van den Bogaard    schedule 16.04.2014
comment
Вы имеете в виду файл.данные? Если это так, я сейчас пробую этот путь и обнаружил одну проблему: Java получает класс org.red5.io.amf3.ByteArray, и я не знаю, как преобразовать его во что-то, что я могу записать в файл. - person Vartlok; 16.04.2014
comment
в вашей java-функции измените тип параметра на byte[], а не на Object. - person Robin van den Bogaard; 17.04.2014
comment
Я нашел другое решение stackoverflow.com/questions/ 23126842/, но спасибо за ответ, это полезно. - person Vartlok; 17.04.2014