POST文件上传 - PHP中的multipart / form-data + UTF错误?

时间:2012-01-27 02:18:08

标签: php apache http uploading litespeed

当我尝试使用带有标题Content-Type: multipart/form-data; boundary=-----NPRequestBoundary-----的HTTP帖子上传文件时,一切都按预期工作但尝试使用Content-Type: multipart/form-data; boundary=-----NPRequestBoundary-----; charset=UTF-8导致完全空白的$ _FILES数组。

这是PHP或Web服务器的问题吗?据我所知,这种形式的Content-Type是有效的。

3 个答案:

答案 0 :(得分:1)

因为Content-Typemultipart/form-data,这意味着它是从部分构建的,每个部分都可以拥有自己的Content-Type。 charset参数仅与text/plain内容类型一起使用。因此,multipart/form-data内容类型无效。

答案 1 :(得分:1)

在SVN rev中修复了Bug。 #316373(5.3.9版本涵盖了它)。

答案 2 :(得分:0)

我找到了解决这个问题的肮脏方法。对我来说这是临时bcs它在litespeed下不起作用(我使用反向代理来缓存这个问题)。
    <Location "/upload.php">
    RequestHeader set Content-Type "multipart/form-data; boundary=-----NPRequestBoundary-----"
      </Location>

它将强制webserver替换content-type标头。现在我确定 - 这是一个PHP错误(有人认为charset将在boundary=之前发生)