我的問題:PHP base64_decode產生無效圖像文件
我正在使用PHP將上傳的base64字符串保存到文件。該字符串來自iPhone應用程序,並且是base64編碼的jpeg文件。
當我將該文件的內容手動添加到圖像標記中的數據src中時,它將正確顯示。當我使用file_get_contents讀取它並將結果字符串添加到img數據標記時,它正常工作。
我的問題:當我使用file_get_contents讀取文件並使用base64_decode()保存結果時,生成的jpeg文件是INVALID。
我的問題是,爲什麼明顯有效的base64編碼字符串在解碼和保存時不產生有效的JPEG文件?
某些源摘錄:
此功能,因爲它應該輸出圖像:
$imagepath = "D:\\path\\to\\image\\mybase64image.txt";
$imagecontent = file_get_contents($imagepath);
header("Content-type:text/html");
$d = '<img alt="" src="data:image/jpeg;base64,' . $imagecontent . '"/>';
echo $d;
這不工作,該文件是無效的:
$imagepath = "D:\\path\\to\\image\\mybase64image.txt";
$imagecontent = file_get_contents($imagepath);
file_put_contents('img.jpg', base64_decode($imagecontent));
- img.jpg是一個無效的文件。 路徑是有效的,文件在那裏,權限也在那裏(結果文件img.jpg是一個二進制文件,只是無效),正如我所說的,它作爲一個數據src。
這裏是base64編碼文件:使用5.3.8 FASTCGI
http://www.mailnet.de/7E072017-DAEB-41E1-B02E-23FB51A05B80.txt
- PHP版本R2
- Web服務器IIS是7.5
任何幫助表示讚賞。
你能發佈編碼和保存數據的代碼嗎? – 2014-09-22 13:27:13
如果你的意思是iPhone的代碼,沒有我沒有訪問。如果有幫助,我可以發佈base64編碼文件嗎? – 2014-09-22 13:29:00
好的,編輯 - 添加一個鏈接到base64編碼文件。 – 2014-09-22 13:33:32