【问题标题】:How can I pass an image inside a JSON Array through AJAX and save it with PHP?如何通过 AJAX 传递 JSON 数组中的图像并使用 PHP 保存?
【发布时间】:2022-11-07 04:20:17
【问题描述】:

我有这条线:

move_uploaded_file($_FILES["img"]["tmp_name"], "uploads/" . "$img_name");

当我通过直接 POST(没有 JSON.stringify 内容)接收图像时,这曾经有效。 现在我正在发送带有字符串化数组内部图像的 ajax,所以我以这种方式在 PHP 文件中获取数组的内容:

$unstringified = json_decode(file_get_contents("php://input"), true);

然后我使用:

$title = $unstringified["title"];
$content = $unstringified["content"];
$img = $unstringified["img"];

问题是现在 move_uploaded_file 停止工作(似乎没有错误,但图像不再显示在文件夹中)。我尝试了一些类似的选项,但没有奏效。

move_uploaded_file($unstringified["img"]["tmp_name"], "uploads/" . "$img_name");
move_uploaded_file($_FILES[$unstringified["img"]]["tmp_name"], "uploads/" . "$img_name");

有什么办法解决这个问题吗?我是否应该以任何格式“转换”图像,直到将其放入我将字符串化的数组中?或者我必须以另一种方式在 PHP 文件中获取图像?

提前非常感谢。 莱安德罗。

【问题讨论】:

  • var_dump($unstringified) 的结果是什么?还有你的javascript是什么样的
  • 如果没有您的 AJAX 代码,要查看您对图像做了什么,我们无能为力帮助您,但您当然不能将 move_uploaded_file() 用于 AJAX 调用中到达的数据。
  • var_dump 的结果是:['img']=>array(0){}

标签: php json ajax


【解决方案1】:

我想在 JSON 中传递图像,因为我总是尝试使用 formdata 传递和图像与其他字符串变量,我总是遇到错误,即使使用 dataType、contentType、Cache 等所有可能的变量,并在这里通过大量答案进行研究。我找不到使用表单数据传递所有数据的解决方案。

我发现我可以做的是在 JSON 对象中传递所有内容而不会出错,这就是为什么我想以这种格式接收 PHP 中的图像并以这种方式保存它。

但是在尝试了很多方法之后,又找不到解决方案,我放弃了,并使用了 2 个单独的发送,一个包含所有字符串的 json 对象,一个只包含图像的表单数据(如果我不这样做) t添加另一个变量,如字符串,没有问题)。

我确信这不是最好的方法,但这是我能做的。

谢谢大家!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-18
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 2012-08-27
    相关资源
    最近更新 更多