【问题标题】:How to convert html to base64 and save an image on a server with php?如何将 html 转换为 base64 并使用 php 在服务器上保存图像?
【发布时间】:2018-01-28 08:23:27
【问题描述】:

我有一个这样的 json 文件:

{"user":{"email":"user@test.com"},
 "screenshot":{"blobFile":"<!DOCTYPE html><html lang=\"en\">...</html>"}}

我想截图,使用 XMLHttpRequest 发送数据到 PHP 文件。

在 PHP 文件中获取如下请求:

$data = json_decode(file_get_contents("php://input"), true);
$htmlStr = json_encode($data["screenshot"]["blobFile"]); // <!DOCTYPE html><html lang=\"en\">...

到目前为止一切正常,但是如何将此字符串转换为图像文件并保存服务器?

我已经在 PHP 文件中尝试了html2canvas,但没有触发。

有什么想法吗?

【问题讨论】:

  • 您是否尝试仅在服务器端执行此操作? wkhtmltopdf.org
  • html2canvas 是一个 js 库。你是如何尝试在 PHP 中使用它的?由于 javascript 在浏览器中运行,html2canvas 使用浏览器生成图像。 PHP 没有浏览器,无法自行解析 HTML。

标签: javascript php base64 blob html2canvas


【解决方案1】:

我会尝试使用PhantomJS。它是无头浏览器,允许通过多种方式与网页交互,包括制作屏幕截图。需要一些时间来了解如何使用它,但它肯定会得到结果。虽然,如果你的页面结构相当复杂,使用 ReactJS、AngularJS 等框架编写,PhantomJS 有时会让人头疼。

它的作用是渲染带有样式的 HTML 页面,包括服务器端的脚本。如果您保存的不是 HTML 字符串,而是带有 COOKIE 和 SESSION 数据的确切 URL,然后在您截屏时重建用户在打开页面中的条件,它会起作用。

在此处查看示例Screen Capture on PhantomJS

【讨论】:

    猜你喜欢
    • 2013-10-20
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    相关资源
    最近更新 更多