2013-01-24 63 views
0

我想從一個傳遞的二進制字符串創建一個畫面產生畫面時生成不同的內容:在不同的機器

$fileName = uniqid().".".$imgType; 
$fileName = "../tmp/".$fileName; 
$f = fopen($fileName,'wb'); 
$picture = mb_convert_encoding($picture, "UUENCODE", "UTF-8"); 

fwrite($f, $picture); 


fclose($f); 

這工作得很好一臺機器上使用PHP 5.3.10-1ubuntu3.4。照片已正確創建。如果使用PHP 5.3.19在不同的機器上嘗試,輸出很奇怪。例如。如果您使用less打開文件,則會發現\0而不是所需的^@字符。

這是爲什麼發生?

該二進制字符串是來自使用HTML5 Formdata在兩種情況下使用UTF-8編碼的網站的發佈請求的一部分。

回答

0
$picture = convert_uudecode($picture); 
+0

沒有幫助。在幾個地方都沒有'convert_uuencode/convert_uudecode'。然後通過傳輸bas64編碼的圖片並使用'base64_decode'來解決這個問題。 EtVoilá。 – mistapink

相關問題