我需要在客户端以 base64 格式编码 .zip 文件并将其发送到服务器(php)。但是,我在 javascript 中找不到任何解决方案。我试试这个:let zipFile = document.getElementById('fileReciever').files[0];let formData = new FormData();formData.append('id', btoa('7804044924'));formData.append('data', btoa(zipFile));let req = new XMLHttpRequest();req.open("POST", 'http://localhost/xmlReader/reciever.php');req.send(formData);但通过这种方式,我在服务器上归档的“数据”中的 $_POST 中只得到 bse64 字符串,通过字符串“[object File]”中的 base64_decode 进行转换,而我在 $_FILES 中什么也没有得到。如何正确地将.zip数据文件转换为javascript中的base64字符串并将其发送到服务器上?
1 回答
www说
TA贡献1775条经验 获得超8个赞
您可以通过这种方式获取文件的 base64。只需像在 POST 请求中发送一样发送字符串即可。
function previewFile() {
const file = document.querySelector('input[type=file]').files[0];
const reader = new FileReader();
reader.addEventListener("load", function () {
// convert file to base64 string using reader.result
document.querySelector('p').innerHTML=reader.result;
}, false);
if (file) {
reader.readAsDataURL(file);
}
}
<!DOCTYPE html>
<html>
<body>
<p>Base 64 string here. You might want to trim </p>
<input type="file" onchange="previewFile()"><br>
<script>
</script>
</body>
</html>
- 1 回答
- 0 关注
- 312 浏览
添加回答
举报
0/150
提交
取消