2016-10-29 2 views
0

Я пытаюсь сохранить захваченное изображение на своем сервере как jpg/png, я декодировал строку как base64 и загрузил ее, но когда я открываю изображение, он говорит: «Файл can not open ». Я не понимаю, почему это происходит, или я просто пропустил какой-либо код.сохранение base64 string как изображение в php с использованием cordova

JQuery

navigator.camera.getPicture(onSuccess, onFail, { quality: 100,destinationType: Camera.DestinationType.DATA_URL }); 

function onSuccess(imageURI) { 
var image = document.getElementById('dr_preview'); 
image.src = imageURI; 
snapSrc = imageURI; 
} 
var img = document.getElementById('dr_preview'); 
var src = $('#dr_preview').attr('src'); 
console.log(src); 
var dataparam = 'type=3&dr='+dr_value+'&image='+src; 
$.ajax({ 
     type: 'POST', 
     dataType: 'json', 
     async: true, 
     url: 'http://localhost/v_2/dr-getDrDetails.php', 
     data: dataparam, 
     cache: true, 
     success: function(data) 
     { 
     } 
}); 

PHP

$data = $_POST['image']; 
$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data)); 
$filePath = $_SERVER['DOCUMENT_ROOT']. '/v_2/scanedDR/'.$dr.'.PNG'; 
$file = fopen($filePath, 'w'); 
fwrite($file, $data); 
fclose($file); 
+0

Вы просто хотите сохранить изображение как PNG и JPG, право – Kumar

+0

@Kumar да чувак – veeran

ответ

0

Вы можете использовать эту функцию, которая преобразует base64 в изображение.

function base64_to_jpeg($base64_string, $output_file) { 
$ifp = fopen($output_file, "wb"); 

$data = explode(',', $base64_string); 

fwrite($ifp, base64_decode($data[1])); 
fclose($ifp); 

return $output_file; 
} 
+0

К сожалению чувака я уже попробовал эту, не использовать – veeran

+0

@veeran попытки открыть ваши base64 кодированные данные в браузере, если их является ошибкой. Ваш jquery не отправляет вам правильные данные. – Kumar

+1

спасибо, чувак, я обнаружил, что в строке base64 есть пробелы, я заменил пробелы + и проблема решена :). Спасибо за вашу поддержку – veeran

Смежные вопросы