如何在javascript中将.zip文件编码为base64?

我需要在客户端以 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字符串并将其发送到服务器上?


森栏
浏览 313回答 1
1回答

www说

您可以通过这种方式获取文件的 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>
打开App,查看更多内容
随时随地看视频慕课网APP