0

最近我将一个 symfony 项目从 3.2 更新到 3.3。我对带有文件的简单 POST 有疑问。该文件不在http基础对象Request的filebag中。

public function sendAction(Request $request){
    dump($request->files);
    dump($request->request);
    dump($request->headers);
    if (!$request->files->has("image")) {
        throw new HttpException(Response::HTTP_BAD_REQUEST, 'no "image" field');
    }
}

当我查看它转储的内容时,根据请求的内容类型,我有不同的结果:

如果我application/x-www-form-urlencoded用作标题,我有这些转储:https : //pastebin.com/5HSCAgut(抱歉,pastebin 链接,输出太长)

如果我multipart/form-data用作标题,我有这些转储: https ://pastebin.com/tZdVKNgG

我的脚本有什么问题?我是否缺少新功能或安全检查?

4

1 回答 1

1

好的,这是一个愚蠢的客户端错误。我指定了标题:

Content-type: multipart/form-data

但应该是

Content-type: multipart/form-data; boundary=-------------BOUNDARYUSEDINREQUEST--------------
于 2017-10-25T09:43:13.573 回答