Мне нужна ваша помощь, пожалуйста, и я не нашел ответов на мою проблему.
Я хочу сделать снимок (или взять его из галереи) на iphone / ipad, а затем закодировать изображение в строку base64 с помощью php и отправить строку base64 в веб-службу.
Если я попробую это на ПК, все в порядке.
если я хочу сделать это на ipad, кажется, что ничего или неправильная строка base64 отправлена в веб-сервис, но я понятия не имею, почему или так ?!
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?
Я надеюсь, что кто-нибудь может мне помочь.
Я думаю, что у iPhone / iPad есть некоторые проблемы с capture=camcorder
,
Пожалуйста, попробуйте это:
<input type="file" name="datei" accept="image/*;capture=camera">
вместо
<input type="file" name="datei" accept="capture=camcorder">
Для получения дополнительной информации проверьте это:
РЕШИТЬ
Проблема в том, что у службы SOAP был максимальный размер файлов для 1 МБ!
Это была проблема, почему я не могу загрузить строки Base64 размером более 1 МБ!
Теперь мы увеличиваем максимальный размер для файлов до 10 МБ, и теперь это работает!
И это было причиной, почему я не могу загрузить некоторые картинки, потому что некоторые картинки были больше чем 1 МБ в строке base64.
Спасибо за помощь всем!