0

StackOverflowとGoogleでこれをたくさん検索しましたが、この特定の状況に対する答えを見つけることができないようです

PHPPOSTを介してXMLファイルを送信するクライアントを使用しています。これは私が使用するコードです。

$xml = file_get_contents('php://input');
$xmlStripped = stripslashes($xml);
$xmlContent = simplexml_load_string($xmlStripped);
print_r($xmlContent);

テストのために、XMLファイルをサーバーに直接アップロードし、次のようにしました。

$xml = file_get_contents('http://www.site.com/linktoxml.xml');
$xmlStripped = stripslashes($xml);
$xmlContent = simplexml_load_string($xmlStripped);
print_r($xmlContent);

そしてそれはうまく機能し、XMLをオブジェクトとして出力します。

アップロードに使用するフォームは次のとおりです。

<form action="http://app.site.com/upload" method="POST">
<input type="file" name="file" id="file ">
<input type="submit" value="upload">
</form>
4

2 に答える 2

0

から実際のファイルを使用してみてください

$_FILES['userfile']['tmp_name'] 

の代わりに

"php://input"

php:// inputの使用を主張する場合は、このハックを試してください

于 2012-05-08T11:28:14.580 に答える
0

file_get_contents('php://input');通常、ファイル自体ではなく、生のRFC1867データを提供します。ファイルデータは、このリクエストデータに含まれています。あなたの場合、PHPはメモリを節約するためにデータを処理した後にそのようなデータを破棄するため、空の文字列を提供します。

ただし、PHPは、RFC1867データを自動的に処理およびデコードします。あなたがしなければならないことは($_FILES['file']['tmp_name']存在し、文字列であることを検証することに加えて):

$xml = file_get_contents($_FILES['file']['tmp_name']);
于 2012-05-08T11:28:59.137 に答える