我尝试通过PHP将照片和GPS位置发送到服务器
这是PHP部分:Copy from here
保存上传的文件
上面的示例在服务器上的PHP临时文件夹中创建上载文件的临时副本.
脚本结束时,临时复制的文件将消失.要存储上传的文件,我们需要将其复制到其他位置:
<?PHP
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
上面的脚本检查文件是否已存在,如果不存在,则将文件复制到指定的文件夹.
现在回到iOS部分,我只能将GPS位置发送到服务器,这很简单因为只是一个字符串.
但是图像不是,我做了一些搜索,发现这个discussion
我直接把代码放在我的发送GPS和图像按钮中
最好的是它可以反馈我发送文件成功或失败
这是我将照片发送到服务器后收到的最多消息
1.无效的文件
2.返回代码:上传:类型:大小:0 KbTemp文件:存储在:upload /
我按照一些指南将图像保存到NSData
NSData *photoData= UIImageJPEGRepresentation(self.theimageView.image, 1.0);
我也检查里面是否有数据
if (photoData == nil) {
NSLog(@"The photo is nothing !!!");
}
else {
NSLog(@"Photo inside !!!!");
它工作得很好…….
但如何将图像上传到服务器???
但是如何……
希望有人能弄清楚这个问题
非常感谢!!!
解决方法:
使用HTTP多部分POST或ASIHTTPRequest
@WebberLai
Save the image to home directory:
Nsstring *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/image.jpg"];
UIImage *img = pickerImage;
// Write a UIImage to JPEG with minimum compression (best quality)
[UIImageJPEGRepresentation(img, 0.5) writetoFile:jpgPath atomically:YES];
Nsstring *photoPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/image.jpg"];
request = [ASIFormDataRequest requestWithURL:webServiceUrl];
[request setPostValue:requestString forKey:@"data"];
[request setFile:photoPath forKey:@"apiupload"];
[request startSynchronous];