【发布时间】:2023-03-25 02:53:01
【问题描述】:
我在 Mobile air for android 应用程序中使用 Flex 4.5。
所以,使用相机/相机胶卷 (http://www.unitedmindset.com/jonbcampos/2010/09/29/air-for-android-camera-and-camera-roll/) 我想使用 amfphp 做一个简单的上传
注意:由于这是您在设备上获取图片的方式,因此我无法使用文件引用,因为它希望您使用无法在 android 或 ios 上完成的“浏览”来获取图片
我的计划是,在我选择一张照片或用相机拍摄一张照片后,如果我可以像这样获得所拍照片的本地网址:
file:///mnt/sdcard/DCIM/Camera/IMG_20110531_205113.jpg
我将其放入 imageURL var
(我假设我应该把它变成一个字节数组来传输它,我不确定这是我第一次做这样的事情)
以下是我如何获取该图像,将其制成字节数组,然后使用 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 部分,我确定那部分会很容易,我可以弄清楚。我只是想在实际将图像上传到目录时获得一些帮助。谢谢!
【问题讨论】:
标签: php apache-flex actionscript-3 file-upload bytearray