Cara menukar gumpalan php kepada base64: 1. Buka fail kod yang sepadan 2. Ubah suai kandungan PHP kepada "fetch("/path/to/server", {method: "POST" body: files; [i ]})..." Itu sahaja.
Persekitaran pengendalian artikel ini: sistem windows7, versi PHP7.1, komputer DELL G3
Cara menukar gumpalan php ke base64?
Tukar gumpalan imej setempat kepada base64 dalam PHP
Penerangan masalah khusus:
Saya sedang menulis borang (HTML) untuk alat dalaman boleh mengisi data masalah yang berkaitan dan melampirkan tangkapan skrin Borang ini kemudiannya dihantar melalui Ajax ke PHPMailer Masalahnya adalah dengan tangkapan skrin, saya tidak boleh membenarkan pengguna memuat naik fail ke pelayan
Pada masa ini, saya menggunakan pembaca fail HTML5 untuk memilih fail, saya kemudian menukar gumpalan imej kepada base64 dan menghantarnya ke PHPMailer untuk ditukar kepada lampiran Isu. Khususnya Hanya imej ujian 1000px x 1000px (402KB) Rentetan base64 yang terhasil adalah lebih daripada sejuta aksara, dan permintaan mengembalikan 413 (Permintaan entiti terlalu besar). memindahkan kaedah imej besar, dan saya telah melihat pelbagai artikel tentang mendapatkan semula/menukar gumpalan imej daripada pangkalan data Apa yang saya tidak dapati ialah maklumat tentang mendapatkan gumpalan imej setempat dan menukarnya kepada base64 URL kelihatan seperti ini: gumpalan: http://example.com/18960927-e220-4417-93a4-edb608e5b8b3
Adakah mungkin untuk mendapatkan data imej setempat ini dalam PHP dan kemudian menukarnya kepada base64?
Saya tidak boleh menghantar banyak kod sumber, walau bagaimanapun, perkara berikut akan memberi anda idea tentang cara saya menggunakan FileReader
Penyelesaian: Anda boleh POST objek Fail ke phpwindow.onload=function(){ window.URL = window.URL || window.webkitURL; var fileSelect = document.getElementById("fileSelect"), fileElem = document.getElementById("fileElem"), fileList = document.getElementById("fileList"); fileSelect.addEventListener("click", function (e) { if (fileElem) { fileElem.click(); } e.preventDefault(); // prevent navigation to "#" }, false); } function handleFiles(files) { if (!files.length) { fileList.innerHTML = "<p>No files selected!</p>"; } else { fileList.innerHTML = ""; var list = document.createElement("ul"); fileList.appendChild(list); for (var i = 0; i < files.length; i++) { if(files[i].size > 1000000) { alert(files[i].name + ' is too big. Please resize it and try again.'); } else { var li = document.createElement("li"); list.appendChild(li); var img = document.createElement("img"); img.src = window.URL.createObjectURL(files[i]); img.height = 60; img.setAttribute("class", "shotzPrev"); img.onload = function() { window.URL.revokeObjectURL(this.src); } li.appendChild(img); var info = document.createElement("span"); info.innerHTML = files[i].name + "<br>" + files[i].size + " bytes"; li.appendChild(info); } } } }
Tutorial Video PHP
"fetch("/path/to/server", { method: "POST" body: files[i] }) .then(response => console.log(response.ok)) .catch(err => console.error(err));
Atas ialah kandungan terperinci Bagaimana untuk menukar gumpalan php ke base64. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!