Archived post from my old blog (2007–2016), restored from the Wayback Machine. It is published as written at the time, in Italian; tools and versions are likely out of date.
Base64.decode Base64.encode
Bella cosina che son riuscito a fare oggi: devo archiviare dei file in campi BLOB di MySQL, rendendoli visibili da una applicazione Flex.
Il mio problema era recuperarli senza farli passare mai per il filesystem, in modo che rimanessero sempre archiviati sotto forma di AES_ENCRYPT Ci sono riuscito abbastanza comodamente facendo mandare da Weborb (php) un campo base64_encode`d` che Flex riceve, decodifica e trasforma in ByteArray, passandolo poi come argomento ad un FileReference (metodo save())
il codice è sostanzialmente:
private function getFileSingolo(event:REsultEvent):void{
var base64Dec:Base64Decoder;
base64Dec = new Base64Decoder();
base64Dec.decode(event.result.contenuto);
var fileRef:FileReference = new FileReference();
fileRef.save(base64Dec.toByteArray(),event.result.nomeFile);
}
A questo punto manca solo la query in da eseguire tramite php:
$query="SELECT SQL_CACHE
nomeFile, AES_DECRYPT(contenuto,$password) as contenuto
FROM Documenti
WHERE Id = $idFile";
while($riga=$risultato->fetch_array(MYSQLI_ASSOC)){
$array = $riga;
$array['contenuto'] = base64_encode($riga['contenuto']);
}
return $array;
Bello eh? 🙂
Problemi:
Funziona solo da Flashplayer 10 in poi e si può fare un traserimento per volta, pena un runtime error
Ovviamente non è farina del mio sacco:
← Archive