我通過POST請求獲取base64編碼的JPEG字符串到我的Web服務。 我想解碼它並將其保存在文件系統中。 我如何使用PHP 5.3來實現這一點。 我能夠使用base64_decode函數成功解碼數據。如何使用PHP在文件系統中保存base64解碼圖像?
如何將此解碼的字符串保存爲服務器中的JPEG圖像?
在此先感謝。
我通過POST請求獲取base64編碼的JPEG字符串到我的Web服務。 我想解碼它並將其保存在文件系統中。 我如何使用PHP 5.3來實現這一點。 我能夠使用base64_decode函數成功解碼數據。如何使用PHP在文件系統中保存base64解碼圖像?
如何將此解碼的字符串保存爲服務器中的JPEG圖像?
在此先感謝。
如果您是確保圖像將永遠是JPG格式,那麼你可以簡單地使用:file_put_contents();
<?php
$decoded=base64_decode($encodedString);
file_put_contents('newImage.JPG',$decoded);
//leave it to you to randomize the filename.
?>
非常感謝。有用。然而它不保證總是一個JPEG。我會試着看看我能否從MIME類型中獲得它。 :)感謝幫助! – Amit
與+標誌更換空白,如果數據是從canvas.toDataURL()函數得到的是必需的。
$encodedString = str_replace(' ','+',$encodedString);
它在我的情況下幫了不少忙。
他需要解碼字符串。 – FabianoLothor
你是否嘗試使用fopen將其保存在二進制文件中? – Arfeen
@Arfeen謝謝,我試過file_put_contents(),它工作。我來這裏是爲了更新我的問題,注意到你和Lawrence Cherone的評論。 – Amit
作爲一個更加靈活和強大的通用解決方案,[PHP-FileUpload](https://github.com/delight-im/PHP-FileUpload/tree/master)帶有兩個['Base64Upload'](https: //github.com/delight-im/PHP-FileUpload/blob/7c950635cbd45ade9fb2656eb285259dc2a8f0fb/src/Base64Upload.php)和['DataUriUpload'](https://github.com/delight-im/PHP-FileUpload/blob/7c950635cbd45ade9fb2656eb285259dc2a8f0fb /src/DataUriUpload.php),[這裏記錄](https://github.com/delight-im/PHP-FileUpload/blob/master/README.md#usage)。 – caw