7

現在、HttpRequest と HttpResponse の 2 つのクラスをコーディングしています。独自の HTTP クラスをコーディングしたいと考えています。

enctype=multipart/form-data のフォームを使用する POST メソッドで問題が発生しています。リクエストの内容を取得できません。

file_get_contents("php://input")長い調査と検索の結果、リクエストの内容を取得するには を使用する必要があることがわかりました。テストすると、空の文字列がありますvar_dump(file_get_contents("php://input"))

サーバー/php 構成にアクセスできません。

次のコードでテストしています:

<?php
$input = file_get_contents('php://input');
var_dump($input);
?>
<html>
<body>
<form action="./" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="text" name="namen" id="nameid" /><br/>
    <input type="file" name="file" id="file"><br>
    <input type="file" name="file2" id="file2"><br>
    <input type="submit" name="submit" value="Submit">
</form>
</body>
</html>

送信後、次の結果が得られました: string(0) "". php://input は enctype=”multipart/form-data” フォームでは機能しないため、これは明らかです。

私は次のようなものが欲しいです:

-----------------------------19972703421793859182225487886
Content-Disposition: form-data; name="namen"

ds
-----------------------------19972703421793859182225487886
Content-Disposition: form-data; name="file"; filename="toto.xml"
Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8"?>
<Toto></Toto>

-----------------------------19972703421793859182225487886
Content-Disposition: form-data; name="file2"; filename=""
Content-Type: application/octet-stream


-----------------------------19972703421793859182225487886
Content-Disposition: form-data; name="submit"

Submit
-----------------------------19972703421793859182225487886--

どのリクエストメソッドでも機能する方法ですか? それとも私は間違っていますか?

4

2 に答える 2

7

php://input は enctype="multipart/form-data" では使用できません。http://php.net/manual/en/wrappers.php.php

于 2014-10-18T08:29:50.107 に答える