将base64_decode照片保存到我可以实际看到图像的文件夹中

时间:2019-07-13 22:49:51

标签: javascript php json ajax base64

我试图弄清楚如何向JSON对象添加文件,但我发现您无法使用JSON执行此操作,因此超时后我发现可以使用方法调用基础64并对文件输入进行编码文件作为字符串并将其插入JSON对象中,然后通过AJAX发送并通过

对该字符串进行解码

PHP将再次成为文件,但是我现在遇到的问题是能够实际存储已解码的base 64字符串图像,该图像现在将成为图像文件到目标文件夹中。我是这个Base 64编码和解码的新手,如果我的Base 64逻辑不好,请给我

足够了,所以我不确定我实际上在做什么,我只是在线收集方法,只是阅读文档以能够完成我想做的事情,但是我对理解过程的运气并不好。为此所需的代码。因此,如果有人可以给我提供我的代码示例

非常感谢。我只是厌倦了阅读和阅读,并且没有完全理解所有这些部分如何协同工作以实现这一目标。

这是我的代码

index.php

<style>

#photo-input{
display: block;
margin-bottom: 50px;
}

</style>

<script>

document.addEventListener('DOMContentLoaded',function(){

document.querySelector('#submit').addEventListener('click',sendUploadInfo);

function sendUploadInfo(){

var photo= window.btoa(document.querySelector('#photo-input').files[0]);//<-btoa encodes photo upload as a string 

//<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); /*I don't know where to go from here and how I can make this
file go to a targeted folder. This is the path I want to store the image file at 'images/'*/ 
//

?>

<h1><?php echo $first_name.' '.$last_name.' just uploaded a photo.'; ?></h1>

0 个答案:

没有答案