2016-09-07 17 views
1

私はあなたの助けを必要とし、私は私の問題のためのいくつかの答えを見つけていない。php base64 iphone picture to webservice

iphone/ipadで画像を撮りたい(またはギャラリーから撮りたい)画像をphpでbase64文字列にエンコードし、base64文字列をwebserviceに送信します。

私はPCでそれを試しても、すべてが問題ありません。 もし私が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; 
    } 
} 

これはアプリ/ iPhone上で動作しなかった理由を任意のアイデア?

誰でも私を助けてくれることを願っています。

答えて

0

を解決しました

問題は、SOAPサービスが1MBのファイルに対して最大サイズを持っていたことです。 これはなぜ私が1MBを超えるBase64ストリングをアップロードできないのかという問題でした!

ファイルの最大サイズを10MBに増やしました。

これは、いくつかの写真がbase64文字列の1MBよりも大きいため、写真をアップロードできない理由です。

皆に助けを求める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

このためTHX、私は問題を解決しない:/ 私は写真 お知らせアップロードした後の通知を取得somtetimes:行74に....で非オブジェクトのprobertyをgehtしようとすると、ライン74 if($ result-> return_value!= "ERROR") だから、私はwebserviceに間違ったデータを送ったと思いますか?またはbase64は正しくありませんか? – Mark

+0

'$ pic_base64'は' savePicture'関数の中で大丈夫ですか? –

+0

はいそれはsavePicture関数で大丈夫です! たとえば、私はsavePictureでエコーを作成し、savePictureを呼び出した後、文字列は同じように見えますが、文字列内の文字はチェックされません。 – Mark