2016-09-07 2 views
1

Мне нужна ваша помощь, пожалуйста, и я не нашел ответы на свои вопросы.php base64 iphone picture to webservice

Я хочу сделать снимок (или взять его из галереи) на iphone/ipad, а затем закодировать изображение в строку base64 с php и отправить строку 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); 
} 

функция 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?

Надеюсь, кто-нибудь может мне помочь.

ответ

0

решаемые

Проблема в том, что служба SOAP имела максимальный размер для файлов на 1 МБ! Это была проблема, почему я не могу загрузить Base64 Strings, которые больше 1 МБ!

Теперь мы увеличиваем максимальный размер файлов до 10 МБ, и теперь он работает!

И вот почему я не могу загрузить несколько фотографий, потому что некоторые изображения были больше, чем 1mb в строке base64.

Thx для помощи всем!

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/

+0

ТНХ для этого, но я не решил проблему:/ somtetimes я получаю уведомление после того, как я загрузить фото Примечание: Пытаюсь Geht proberty отказа от объекта .... на линии 74 и линии 74 is if ($ result-> return_value! = "ERROR") Так что я думаю, что я отправил неверные данные в webservice? или base64 неверен? – Mark

+0

Действительно ли '$ pic_base64' выглядит в вашей функции' savePicture'? –

+0

Да, это нормально в функции savePicture! например, я делаю эхо в savePicture, и после того, как я назвал savePicture, строки выглядят одинаково ... но я не проверял любой символ в строке. – Mark