База облегчил 64_decode не преобразование строки base-64 в выполнимый файл изображения
Здравствуйте ребята я успешно нашел метод который утверждает что делает входной файл файла в строку base 64 в JavaScript поэтому я успешно отправил эту строку base 64
строку JSON с помощью AJAX и в кодировке base-64 строки выглядит следующим отправлено в метод JSON с "фото":"сведения:изображение/jpeg;base64, и/9 с/4AAQSkZJRgABAQEASABIAAD/2wB и т. д...."
Поэтому, когда базовая строка 64 поступает в PHP-файл. PHP делает это волшебно и успешно хранит файл в целевой папке, где я хочу, чтобы файл был, поэтому, когда я смотрю в эту папку, там есть файл, но
когда я пытаюсь открыть фотофайл, чтобы просмотреть его, приложение для просмотра фотографий говорит что-то вроде: image.jpg похоже, что мы не поддерживаем этот формат файла, и в других приложениях для просмотра фотографий он будет что-то говорить
похоже на то, так что же я сделал не так?
Вот мой код
index.php
<style> #photo-input{ display: block; margin-bottom: 50px; } </style> <script> document.addEventListener('DOMContentLoaded',function(){ document.querySelector('#submit').addEventListener('click',function(){ var photo_input= document.querySelector('#photo-input').files[0]; //Convert #photo-input content into a base 64 string var reader = new FileReader(); reader.readAsDataURL(photo_input); reader.onload = function (){ var photo_input_result= reader.result; sendUploadInfo(photo_input_result); } // }); function sendUploadInfo(photo_input_result){ var photo= photo_input_result; //<JSON data> var upload_info = { first_name: "John", last_name: "Smith", photo: photo }; //</JSON data> var upload_info_json_object= 'upload_info_json_object='+JSON.stringify(upload_info); //<AJAX> var xhr= new XMLHttpRequest(); xhr.onreadystatechange= function(){ if(xhr.readyState == 4){ document.querySelector('#output').innerHTML= xhr.responseText; } } xhr.open('POST','x'); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.send(upload_info_json_object); //</AJAX> } }); </script> <input type='file' id='photo-input'> <button id='submit'>Send JSON data</button> <div id='output'></div>
x.php
<?php $upload_info_json_object = json_decode($_POST['upload_info_json_object']); $first_name= $upload_info_json_object->first_name; $last_name= $upload_info_json_object->last_name; //Photo upload section $photo= $upload_info_json_object->photo; base64_decode($photo); $path= $_SERVER['DOCUMENT_ROOT'].'/send-json-data-by-ajax/object-based/with-file/2/images/image.jpg'; file_put_contents($path, $photo); // ?> <h1><?php echo $first_name.' '.$last_name.' just uploaded a photo.'; ?></h1>
Что я уже пробовал:
Поиск в Google другой сайт, и другие сайты не повезло еще за полезные ответы.