Не уверен, что может вызвать проблемы. Я много раз передавал данные в кодировке base64 в php из AS3 и не сталкивался с проблемами.
Обычно я использую Hurlant Base64 :: encodeByteArray () на стороне AS3.
Редактировать
Примерно так может помочь в отладке этой проблемы:
var buffer:ByteArray = new ByteArray();
for(var i:int = 0; i < 256; i++) {
buffer[i] = i;
}
var str:String = Base64.encodeByteArray(buffer); // this is com.hurlant.util.Base64
// post your data to your php (directly or through JS)
Тестовый код Php:
$str = $_REQUEST['str'];
$decoded = base64_decode($str);
file_put_contents("test.txt",$decoded);
На стороне AS вы отправляете строку, которая кодирует каждое возможное значение байта. PHP расшифрует его и запишет в файл. Теперь, если вы откроете сгенерированный файл с помощью шестнадцатеричного редактора, вы должны увидеть все числа от 0 до 255 (или 0x00 ... 0xff). Если это не так, это может дать некоторые подсказки о причинах проблем.
PS: я бы отправлял сообщения из AS в PHP напрямую, чтобы упростить устранение неполадок. Возможно, JS как-то портит ваши данные (маловероятно, поскольку base64 должен быть безопасным); но просто чтобы исключить возможный источник проблемы.