php blob을 base64로 변환하는 방법: 1. 해당 코드 파일을 엽니다. 2. PHP 콘텐츠를 "fetch("/path/to/server", {method: "POST" body: files[i]}로 수정합니다. )..” 그게 다입니다.
이 문서의 운영 환경: windows7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
php blob을 base64로 변환하는 방법
PHP에서 로컬 이미지 blob을 base64로 변환
자세한 문제 설명 :
내부 도구용 (HTML) 양식을 작성 중입니다. 사용자는 질문에 대한 데이터를 입력하고 스크린샷을 첨부할 수 있습니다. 그러면 이 양식이 전송을 위해 Ajax를 통해 PHPMailer에 제출됩니다. 시스템 제한으로 인해 사용자가 실제로 파일을 서버에 업로드하도록 할 수 없습니다.
현재 HTML5 파일 리더를 사용하여 파일을 선택한 다음 이미지 blob을 base64로 변환하고 변환하도록 보냅니다. 실제로는 잘 작동합니다. 그러나 파일 크기 문제가 있습니다. 특히 1000px x 1000px(402KB) 테스트 이미지 결과는 100만자를 초과하며 요청은 413(요청 엔터티)을 반환합니다.
나는 base64가 큰 이미지를 전송하는 효율적인 방법이 아니라는 것을 알고 있으며 데이터베이스에서 이미지 blob 검색/변환에 대한 다양한 기사를 본 적이 있지만 찾을 수 없는 것은 로컬 이미지 blob 검색에 대한 정보입니다.
내 이미지 blob URL은 다음과 같습니다: blob: http://example.com/18960927-e220-4417-93a4-edb608e5b8b3
이 로컬 이미지 데이터를 PHP로 가져온 다음 base64로 변환 ?
많은 소스 코드를 게시할 수는 없지만 다음은 FileReader를 사용하는 방법에 대한 아이디어를 제공할 것입니다
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 + ' 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); } } } }
해결책:
파일 개체 php
fetch("/path/to/server", { method: "POST" body: files[i] }) .then(response => console.log(response.ok)) .catch(err => console.error(err));를 게시할 수 있습니다
추천 학습: "PHP 비디오 튜토리얼 》
위 내용은 PHP Blob을 Base64로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!