使用PHP在服务器上存储jquery png http响应。

问题描述 投票:0回答:1

我使用 restpack.io API 来捕捉一个网站的截图,我的 jquery 调用返回一个 png 文件,返回的文件在控制台的输出是这样的。

enter image description here

我想做的是: 我想把这个http响应用php存储在我的服务器上.所以我把这个字符串发布到我的php文件中--但我不知道如何处理这个字符串来存储它.我试着把这个字符串放到一个新创建的png文件中,但它说这是一个被破坏的图像。

我如何将这些数据存储在我的服务器上的一个新文件中?

谢谢你的帮助

编者按:我在创建博客时,使用了$_FILES,使其可以访问。

我正在创建博客,以使它可以使用$_FILES访问

let blob = new Blob([responseimage], {
type: "image/png"
});
fd.append('file', blob);

我的服务器端php看起来像这样。

$filepath = $_FILES['file']['tmp_name'];
$filename = "newfile.png";

$move_result = move_uploaded_file($filepath, $filename);
echo $move_result;

它正在创建一个有效文件大小的png文件,但很遗憾,我无法打开它。

php jquery httpresponse
1个回答
1
投票

这不是一个字符串,它是二进制数据,因为你是通过控制台查看它,所以它被编码为字符串。要把它发送到服务器,你可以在AJAX请求中发送一个FormData对象,就像这样。

let data = new FormData();
data.append('file', screenshotDataHere);

$.ajax({
  url: 'yourpage.php',
  type: 'POST',
  contentType: false,
  processData: false,
  data: data,
  success: function() {
    console.log('it worked!');
  }
});

然后在你的PHP中你可以使用 $_FILES['file'] 来访问文件数据,并将其保存在您需要的任何地方。

© www.soinside.com 2019 - 2024. All rights reserved.