ここで少し問題があります。リクエストにファイルを添付するように具体的に cURL に指示するにはどうすればよいですか?
cURL を使用してファイルをアップロードする場合、一般的な方法は、POST データ配列の一部として、その前に @ を持つ値を付けて添付することです。次に例を示します。
CURLOPT_POSTFIELDS=>array('my-file'=>'@my-file.txt')
これは明らかに機能しますが、2 つの問題があります。
- 実際にアップロードしているファイルではない場合はどうなりますか? POST 値が実際には '@my-file.txt' であり、代わりにファイルをアップロードしようとした場合はどうなりますか? それは私が必死に避けようとしている抜け穴を作り出します.
- URL からファイルをアップロードするにはどうすればよいですか? ダウンロードして一時フォルダーに保存し、その一時フォルダーから@を付けて添付する必要がありますか? ファイルとして使用したいコンテンツだけを cURL に渡せないのはなぜですか?
cURL CURLOPT_INFILE は $_FILES 配列の一部として表示されないため、オプションではありません。
POST フィールド値の @ 記号に依存する cURL の抜け穴のようです。それを回避する方法はありますか?CURLOPT_FILEFIELDS 配列がないのはなぜですか? コマンドライン cURL には、このための別のフラグ (-F) がありますが、何らかの理由で PHP のオプションとして表示されません。
どんな助けでも大歓迎です、ありがとう!