O Zend AMF é uma implementação feita em PHP[bb]para se trabalhar com o protocolo de comunicação binário AMF(Action Message Format) fazendo parte do ZendFramework. Precisei implementar um sistema de upload de arquivos que fosse um pouco diferente do que normalmente é usado no Adobe Flash, sendo que essa funcionalidade precisava ser integrada no Zend AMF.
Pesquisando um pouco na net, achei a solução que foi mais simples do que eu imaginava baseada nesse artigo com algumas poucas adaptações.
Começaremos pelo nosso gateway que será usado como endpoint no Adobe Flex.
[php]
setProduction(false);
$server->setClass(‘UploadZendAMF’);
$server->setClassMap(‘FileVO’,”br.com.leonardofranca.vo.FileVO”);
echo($server->handle());
?>
[/php]
Agora o nosso VO com propriedades com nome do arquivo e os binarios.
[php]
fileName;
}
public function setFileName($fileName)
{
$this->fileName = $fileName;
}
public function getFileData()
{
return $this->fileData;
}
public function setFileData($fileData)
{
$this->fileData = $fileData;
}
}
?>
[/php]
Agora nossa classe PHP que ser responsavél por efetudar o upload.
[php]
getFileData();
file_put_contents( ‘C:\\apache\\htdocs\\images\\’ . $data->getFileName(), $fileData);//your dir
return true;
}
catch (Exception $e)
{
throw new Exception($e->getMessage());
}
}
}
?>
[/php]
Agora vamos a camada de visão usando o Adobe Flex, começamos com nosso VO.
[actionscript3]
package br.com.leonardofranca.vo
{
import flash.utils.ByteArray;
[Bindable]
[RemoteClass(alias=”br.com.leonardofranca.vo.FileVO”)
public class FileVO
{
private var _fileName:String;
private var _fileData:ByteArray;
public function FileVO()
{
}
public function get fileName():String
{
return _fileName;
}
public function set fileName(value:String):void
{
_fileName = value;
}
public function get fileData():ByteArray
{
return _fileData;
}
public function set fileData(value:ByteArray):void
{
_fileData = value;
}
}
}
[/actionscript3]
Agora nosso mxml que carregará os bytes do arquivo para enviar para o ZendAMF.
[xml]
[/xml]
Compre o código fonte,
FlexUploadZendAMF.zip – R$4,99(inclui o projeto Flex 4 e arquivos php)[wp_cart:Arquivo Fonte FlexUploadZendAMF.zip:price:4.99:end]
Mais códigos e PDFs clique aqui.