モバイルデバイスからサーバーに写真をアップロードしようとしています。PhoneGap (Javascript) で構築しているため、サーバーに送信するために文字列に変換しています。受け取った後、読み取り可能な画像ファイルに戻すのに問題があります。簡単に言えば、送られてきた文字列とファイル名を取得し、デコードして .png に変換し、円形の画像にトリミングする必要があります。
これは私が現在行っていることです
if (isset($_POST['file']))
{
//Result variable
$result = false;
$pic = base64_decode($_POST['file']);
$filename = $_POST['filename'];
if (strlen($pic) > 9 )
{
$fh = fopen("/var/www/pics/events/".$filename, 'w') or die("can't open file");
fwrite($fh, $pic);
fclose($fh);
}
}
ここで何が間違っていて、画像ファイルとして正しく保存されないのかを理解できれば、残りのコードを機能させることができると思いますか? ファイルは正しくアップロードされますが、拡張子なしで保存され、ブラウザでポイントすると、画像ファイルのように表示されますが、画像は表示されません。色付きの形をした小さな壊れた絵のアイコンは、その場所に移動したときに表示されるものです。
このプロセス中に送信されている画像の種類を認識する必要はありますか? それが .gif、.jpg/jpeg、.png などであるかどうかはどうやってわかりますか?
助けてくれてありがとう!
ネイサン