我正在尝试将二进制文件(照片)从运行Monotouch
在. 正在发送和接收文件,但服务器上的二进制文件似乎已损坏,无法查看。iPad
PHP
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
图像似乎正确地出现。图像在服务器上的jpeg
Windows 资源管理器中正确显示图像尺寸,我可以预览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 字节)。任何人都知道这怎么会发生?