2011-11-24 2 views
9

私は、WebサービスへのPOSTリクエストを介してbase64でエンコードされたJPEG文字列を取得しています。 デコードしてファイルシステムに保存したいと思っています。 PHP 5.3を使用してこれをどのように達成できますか? base64_decode関数を使用してデータを正常にデコードすることができました。phpを使ってファイルシステムにbase64で解読された画像を保存するには?

このデコードされた文字列をJPEG画像としてサーバーに保存するにはどうすればよいですか?

ありがとうございます。

+0

これをfopenを使用してバイナリファイルに保存しようとしましたか? – Arfeen

+0

@Arfeenありがとう、私はfile_put_contents()を試してみました。私はあなたとLawrence Cheroneのコメントに気づくように私の質問を更新するためにここに来ました。 – Amit

+0

より柔軟で強力な一般的なソリューションとして、[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

答えて

12

あなたがイメージを常にJPGになります確信しているなら、あなたは、単に使用することができます。データはcanvas.toDataURL()関数から導出されている場合file_put_contents();

<?php 
$decoded=base64_decode($encodedString); 

file_put_contents('newImage.JPG',$decoded); 
//leave it to you to randomize the filename. 
?> 
+0

ありがとうございました。できます。しかし、それは常にJPEGであることが保証されていません。 MIMEタイプから取得できるかどうか試してみます。 :)ヘルプをよろしく! – Amit

8

+記号で空白の交換が必要です。

$encodedString = str_replace(' ','+',$encodedString); 

See this question

それは私の場合には多くのことを助けました。

+0

彼は文字列をデコードする必要があります。 – FabianoLothor

関連する問題