Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar gumpalan php ke base64

Bagaimana untuk menukar gumpalan php ke base64

藏色散人
藏色散人asal
2021-11-16 09:28:352395semak imbas

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.

Bagaimana untuk menukar gumpalan php ke base64

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 php
window.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 + &#39; is too big. Please resize it and try again.&#39;);
        } 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);
        }
    }
  }
}

Pembelajaran yang disyorkan: "

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn