iphone SDK:从iphone上传图片到php服务器发送空文件?(示例代码链接里面)
作者:互联网
我尝试通过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";
}
?>
上面的脚本检查文件是否已存在,如果不存在,则将文件复制到指定的文件夹.
注意:此示例将文件保存到名为“upload”的新文件夹中
现在回到iOS部分,我只能将GPS位置发送到服务器,这很简单因为只是一个字符串.
但是图像不是,我做了一些搜索,发现这个discussion
我直接把代码放在我的发送GPS和图像按钮中
最好的是它可以反馈我发送文件成功或失败
这是我将照片发送到服务器后收到的最多消息
1.无效的文件
2.返回代码:上传:类型:大小:0 KbTemp文件:存储在:upload /
我按照一些指南将图像保存到NSData
NSData *photoData= UIImageJPEGRepresentation(self.theimageView.image, 1.0);
我也检查里面是否有数据
所以只需将此代码添加到Button操作中即可
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,upload,sdk,nsdata,iphone 来源: https://codeday.me/bug/20190630/1341351.html