大家好,我成功找到了一种方法,该方法声称可以在 JavaScript 中将文件输入文件转换为 base 64 字符串,因此我成功发送了该 base 64
JSON 通过 AJAX 和 base 64 编码的字符串看起来像这样发送在 JSON 方法 "photo":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wB 等......"
所以当 base 64 字符串到达 PHP 文件时。PHP 很神奇并成功地将文件存储在我希望文件所在的目标文件夹中,所以当我查看该文件夹时,有一个文件但是
当我尝试打开照片文件进行查看时,照片查看器应用程序会显示类似 image.jpg 的内容,看起来我们不支持此文件格式,而在其他照片查看器应用程序中,它会显示一些内容
与此类似,所以我做错了什么?
这是我的代码
索引.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>
慕慕森
江户川乱折腾