Monotouch
を使用して、 で実行されているアプリケーションiPad
からPHP
サーバー (Windows)にバイナリ ファイル (写真) を同期しようとしていますWebclient
。ファイルは送受信されていますが、サーバー上でバイナリ ファイルが破損しているようで、表示できません。
クライアント側のコードは次のとおりです。
static void UploadPhotos()
{
WebClient client = new WebClient ();
client.Headers.Add("Content-Type","application/octet-stream");
string sUri = GetUri();
client.UploadFile (sUri, "POST", "images/test.png");
}
サーバー上のPHP
コードは次のとおりです。
<?php
$uploadDir = "C:\\uploaddir\\";
foreach ($_FILES as $file_name => $file_array) {
$uploadFile = $uploadDir . $file_array['name'];
move_uploaded_file($file_array['tmp_name'], $uploadFile);
}
?>
アップロードでバイナリデータが破損する理由とその修正方法を知っている人はいますか?
アップデート:
本当に奇妙です。私が抱えている問題はpng
画像のみに影響しているようです。jpeg
画像が正しく表示されるようです。画像は、サーバー上の Windows エクスプローラーで画像のjpeg
寸法を正しく表示し、画像をプレビューできjpeg
ます。テストしたjpeg
画像は約 90 KB でした。ただし、png
ファイルは正しく表示されません。Windows エクスプローラーでは、png
ファイルに画像のサイズが表示されず、プレビューできません。png
ファイルサイズはサーバー上で大きくなります。したがって、たとえば、次のpng
画像を使用します。
http://tuxpaint.org/stamps/stamps/animals/birds/cartoon/tux.png
初期ファイルは 40.2 KB (41236 バイト) です。転送後のサーバー上のファイル サイズは 45.3 KB (46468 バイト) です。誰でもこれがどのように起こるか考えていますか?