不確定什麼可能會造成麻煩。我已經很多次將base64編碼的數據從AS3傳遞到php,並且沒有遇到問題。
我一般用Hurlant's的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應該是安全的);但只是爲了拋棄問題的可能來源。
這是什麼意思「似乎沒有正確輸出」?打印解碼數據之前,您是否發送了適當的內容類型標題? – 2010-05-31 22:45:48