Base64.decode Base64.encode

febbraio 17, 2009
By

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:

Post originale

Tags: , , , ,

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


*