php base64 iphone图片到webservice

时间:2016-09-07 13:21:20

标签: php iphone ipad base64

我需要你的帮助,但我找不到解决问题的方法。

我想在iphone / ipad上拍照(或从画廊中取出),然后使用php将图片编码为base64字符串,并将base64字符串发送到网络服务。

如果我在电脑上试试,一切都没问题。 如果我想在ipad上这样做,似乎没有什么或不正确的base64字符串发送到webservice但我不知道为什么左右?!

picture.php

<form action="picture.php?action=upload" method="post" enctype="multipart/form-data">
<input type="file" name="datei" accept="capture=camcorder">
<br/><br/>
<input type="submit" value="up">
</form>
<?
if(isset($_GET['action']))
{

    $tmp_name = $_FILES["datei"]["tmp_name"];
    $name = $_FILES["datei"]["name"];
    $name = substr($name,0,-4);
    $name.="_".time().".jpg";
    move_uploaded_file($tmp_name, "upload/".$name);

    $content = file_get_contents ( "upload/".$name );
    $imageBase = base64_encode( $content );

    $success = savePicture($imageBase);
}

function savePicture()

function savePicture($pic_base64)
{
    ini_set("soap.wsdl_cache_enabled", "0");
    $pageURL = 'http://....';
    $page = new NTLMSoapClient($pageURL);

    $params = array("pRecordID" => "1",
                  "pFieldID" => 70000,
                  "pUserID" => "153",
                  "pContent" => $pic_base64
                  );

   $result = $page->SetBLOBValue($params);

   if($result->return_value != "ERROR")
   {
    return true;
   }
   else
   {
    return false;
   }
}

为什么这对ipad / iphone无效?

我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

我认为iPhone / iPad在capture=camcorder时存在一些问题。

请试试这个:

<input type="file" name="datei" accept="image/*;capture=camera">

而不是

<input type="file" name="datei" accept="capture=camcorder">

有关详细信息,请查看:

http://www.html5rocks.com/de/tutorials/getusermedia/intro/

答案 1 :(得分:0)

<强>解决

问题是SOAP服务的文件最大大小为1MB! 这就是为什么我无法上传大于1MB的Base64字符串的问题!

现在我们将文件的最大大小增加到10MB,现在它可以工作了!

这就是为什么我无法上传一些图片的原因,因为有些图片在base64字符串中大于1mb。

向所有人寻求帮助!