php blob 怎么转base64
2022-12-02 09:01:16
105
{{single.collect_count}}

php blob转base64的方法:1、打开相应的代码文件;2、修改PHP内容为“fetch("/path/to/server", {method: "POST"body: files[i]})...”即可。

php入门到就业线上直播课:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑

php blob 怎么转base64?

在PHP中将本地图像Blob转换为base64

具体问题描述:

我正在为内部工具编写(HTML)表单.用户可以填写有关问题的数据并附加屏幕截图.然后将此表单通过Ajax提交给PHPMailer进行发送.问题出在截图上.由于系统限制,我无法让用户实际将文件上传到服务器.

当前,我正在使用HTML5文件阅读器来选择文件.然后,我将图像Blob转换为base64,并将其发送到PHPMailer,以转换为附件.这实际上工作得很好.但是,我遇到了文件大小问题.具体来说就是1000px x 1000px(402KB)的测试图像.产生的base64字符串超过一百万个字符,并且请求返回 413(请求实体太大).

我知道base64并不是传输大型图像的有效方法,并且我已经看到有关从数据库检索/转换图像斑点的各种文章.我找不到的是有关检索本地图像Blob并将其转换为base64的信息.

我的图片Blob网址如下所示: 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);}}}}
登录后复制

解决方案:

您可以将File对象的POST 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中文网其它相关文章!

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}