3

CURL を使用して、次のように PHP でデータを投稿します。

curl_setopt($ch, CURLOPT_POSTFIELDS, $args);

$args - パラメータの配列。

問題は、パラメータの 1 つに「@」で始まる値があることです。CURL のドキュメントによると、これはファイルを送信することを意味します。私の場合、これは真実ではありません。その結果、次のエラー メッセージが表示されます: フォームポスト データの作成に失敗しました。

ファイルを送信したいときにいつでも指定する方法はありますか、または「@」は値の一部である通常の文字ですか?

ありがとう、ジーナ

4

2 に答える 2

3

代わりにパーセントエンコーディングを使用できますか? そうすれば、「@」記号は %40 になり、CURL はそれらを台無しにしません。通常、すべての投稿フィールドをパーセント エンコードします。

http://en.wikipedia.org/wiki/Percent-encoding

于 2012-09-24T14:42:29.023 に答える
1

PHP 5.5 以降では、CURLOPT_SAFE_UPLOAD オプションを設定して、「@」で始まる文字列のファイル アップロード動作を防止できます。例えば。

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);

デフォルト値は、PHP 5.5.0 では false、5.6.0 以降では true です。

ソース: http://php.net/manual/en/function.curl-setopt.php

于 2014-10-03T13:38:31.897 に答える