首页 > 后端开发 > php教程 > 使用 multipart/form-data 时如何在 PHP 中访问原始 POST 数据?

使用 multipart/form-data 时如何在 PHP 中访问原始 POST 数据?

Mary-Kate Olsen
发布: 2024-11-26 09:31:11
原创
377 人浏览过

How Can I Access Raw POST Data in PHP When Using multipart/form-data?

意外行为:原始帖子数据不可用

如 PHP 手册中所述,php://input 和 $HTTP_RAW_POST_DATA 都不能用于检索具有 multipart/form-data 内容类型的请求的原始 POST 数据。这是因为 php://input 允许高效检索原始数据,但仅当内容类型不是 multipart/form-data 时才有效。

multipart/form-data 表单的解决方法

尽管无法直接访问多部分/表单数据请求的原始发布数据,但存在一种解决方法来检索it:

  1. 修改 Apache 配置: 将以下配置添加到您的 Apache 配置文件中:

    <Location "/backend/XXX.php">
     SetEnvIf Content-Type ^(multipart/form-data)(.*) NEW_CONTENT_TYPE=multipart/form-data-alternate OLD_CONTENT_TYPE=
     RequestHeader set Content-Type %{NEW_CONTENT_TYPE}e env=NEW_CONTENT_TYPE
    </Location> 
    登录后复制
  2. 技巧PHP: 此修改会将传入请求的 Content-Type 从 multipart/form-data 更改为 XXX.php到多部分/表单数据替代。因此,PHP 将不再尝试解析数据。
  3. 检索原始数据:您现在可以从 php://input 访问完整的原始数据并自行解析。

注意事项:

  • 解决方法将导致 $_FILES 数组为空。
  • 此 hack 不是官方解决方案,但它提供了一种获取多部分/表单数据请求的原始数据的方法。
  • 它总是最好的确保发送数据的合作伙伴遵循正确的内容类型,从而完全避免此类问题。

以上是使用 multipart/form-data 时如何在 PHP 中访问原始 POST 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板