我尝试通过 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 Kb
临时文件:
存储于:上传/
我按照一些指南将图像保存到 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];
关于php - iphone SDK : Upload image from iphone to a php Server send empty file ?(里面有示例代码链接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3985515/