Я использую Flex 4.5 в приложении Mobile air для Android.
Итак, с помощью Camera/Camera roll (http://www.unitedmindset.com/jonbcampos/2010/09/29/air-for-android-camera-and-camera-roll/) я хочу выполнить простую загрузку с помощью amfphp
Примечание. Поскольку именно так вы получаете изображения на устройствах, я не могу использовать filreference, потому что он хочет, чтобы вы получали изображения с помощью «просмотра», что невозможно сделать на Android или ios.
Мой план таков: после того, как я выберу изображение или сделаю снимок с помощью камеры, в случае, если я смогу получить локальный URL-адрес изображения, которое было сделано следующим образом:
file:///mnt/sdcard/DCIM/Camera/IMG_20110531_205113.jpg
Я помещаю это в переменную imageURL
(я предполагаю, что я должен превратить его в массив байтов, чтобы передать его, я не совсем уверен, что это мой первый раз, когда я делаю что-то подобное)
Вот как я беру это изображение, превращаю его в массив байтов и использую amfphp для отправки загрузки на сервер:
protected function upload_btn_clickHandler(event:MouseEvent):void
{
var request:URLRequest = new URLRequest(imageURL);
var urlLoader:URLLoader = new URLLoader(request);
urlLoader.addEventListener(Event.COMPLETE, onURLLoaderComplete);
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.load(request);
}
private function onURLLoaderComplete(event:Event):void
{
var byteArray:ByteArray;
byteArray = event.target.data;
//send upload using amfphp!
gw.call("MyClass.uploadFile", uploadImageRes, byteArray);
}
Вот мой php-код:
function uploadFile($fileData) {
$myFilePath = '../../../assets/userphotos/imageone';
preg_replace("/[^0-9]+/","_",microtime()).'_'.$fileData["filename"];
file_put_contents($myFilePath, $fileData["filedata"]);
//eventually add the mysql query to add the image path to mysql server
return true;
}
Но я получаю сообщение об ошибке NetConnection.Call.BadVersion.
Это первый раз, когда я пытаюсь что-то подобное, поэтому я даже не уверен, правильно ли я это делаю. Все примеры, которые я нахожу в Интернете, связаны с использованием класса fileReference, но это, похоже, требует от меня использования метода «просмотра», и я использую мобильное приложение, которое использует камеру и рулон камеры для захвата изображений с устройства, и я не знаете, как включить это в класс fileref. Я подумал, что могу просто получить массив байтов и отправить его на php самостоятельно, и все должно быть в порядке.
Моя конечная цель - иметь возможность загружать изображение в папку на сервере, и я сделаю обновление mysql, чтобы указать местоположение файла, я пока не очень беспокоюсь о части mysql, я уверен, что часть будет очень легко, и я могу понять это. Я просто хотел получить помощь с фактической загрузкой изображения в каталог. Благодарность!