编程语言
首页 > 编程语言> > iphone SDK:从iphone上传图片到php服务器发送空文件?(示例代码链接里面)

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位置发送到服务器,这很简单因为只是一个字符串.

你可以download sample code here

但是图像不是,我做了一些搜索,发现这个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