【问题标题】:Upload an image through HTTP POST with Postman使用 Postman 通过 HTTP POST 上传图像
【发布时间】:2017-06-07 00:57:29
【问题描述】:

我一直在尝试通过 Postman 将图像发送到一个简单的 PHP 脚本,该脚本应该显示发送的图像。我遵循的步骤是:

邮递员“客户端”端:

  1. 选择POST请求
  2. 选择带有值 multipart/form-data 的 HEADER Content-Type
  3. 在 Body 选项卡中选择 form-data 引入 key = image_test,从 Text 更改为 File并搜索图片,例如:photo.png
  4. 发送 POST 请求。

在 PHP 脚本中,我只有: echo '<img src="data:multipart/form-data,' . $_POST['image_test'] .'"/>';

尽管使用print_r($_POST) 我可以看到编码图像,但此解决方案对我不起作用。这可能是主机(https://ide.c9.io)或邮递员的问题吗?我对 Postman 和 base64 图像进行了一些其他测试,但 Postman 的 Display 选项卡无法显示解码后的图像;唯一的方法是通过浏览器访问。

【问题讨论】:

  • 我可以理解您正在使用 print_r($_POST) 在服务器上接收图像?所以我猜邮递员正在做它的工作?使用 print_r 时你看到了什么?

标签: php image http postman


【解决方案1】:

一些代码将有助于理解您正在尝试做什么。您可以尝试以 base64 编码将图像发送回客户端。示例见How to convert an image to base64 encoding?

【讨论】:

    【解决方案2】:

    该链接有助于找到这个简单示例的解决方案。基本上,从 Postman 发送数据(在本例中为图像)的过程如下:

    1. 选择 POST 请求。
    2. 在正文中选择表单数据更改类型为文件并为其输入密钥。

    服务器将通过如下示例正确处理它:

    <!DOCTYPE html>
    <html>
        <head>
            <title>Receiving data with Postman</title>
        </head>
    
        <?php 
            $dir = '/';
            $file = basename($_FILES['image']['name']);
    
            if (move_uploaded_file($_FILES['image']['tmp_name'], $file)) {
                echo "Ok.\n";
    
            } else {
                echo "Error.\n";
            }
        ?>
        <img src="<?=$file?>"></img>
    
    </html>
    

    【讨论】:

      猜你喜欢
      • 2020-09-08
      • 1970-01-01
      • 2019-12-28
      • 2012-01-23
      • 2012-06-20
      • 1970-01-01
      • 2011-06-22
      • 2012-11-14
      相关资源
      最近更新 更多