【问题标题】:PUT upload does not fill $_FILESPUT 上传未填满 $_FILES
【发布时间】:2016-11-30 14:12:02
【问题描述】:

我正在使用 PUT 方法在前端使用 dropzone.js 上传文件。但是,当我想处理文件时,Symfony 的 Request 对象和 $_FILES 数组都是空的。

我已经检查了this huge checklist 中的所有内容,但它对我没有帮助,因为它没有说明通过 PUT 方法上传的任何内容。

【问题讨论】:

  • documentation 中描述的第一行。 An associative array of items uploaded to the current script via the **HTTP POST** method. 已添加重点。
  • 我在文档中找到了它,这就是我回答自己问题的原因。说明中添加了链接以获取更多信息。

标签: php file-upload symfony dropzone.js


【解决方案1】:

PHP 不会将通过 PUT 方法上传的文件转换为 $_FILES 因此 Symfony 的 Request 对象也是空的。

您需要使用以下代码处理传入的文件。

/* PUT data comes in on the stdin stream */
$putdata = fopen("php://input", "r");

或者在 symfony 中使用$request->getContent()

PHP 还支持 Netscape Composer 使用的 PUT 方法文件上传 和 W3C 的 Amaya 客户。有关详细信息,请参阅PUT Method Supporthttp://php.net/manual/en/features.file-upload.post-method.php

【讨论】:

  • 为什么要同时提问和回答你的问题?所以你知道一个简单问题的明显答案吗?有什么意义?
  • 自从 StackOverflow 成为知识资源以来,我认为它可以在未来对某人有所帮助。
  • 是的,它现在正在帮助我
猜你喜欢
  • 2014-04-29
  • 2018-05-24
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
  • 2019-11-14
  • 1970-01-01
  • 2014-02-11
相关资源
最近更新 更多