1

curl を使用してファイルをアップロードしようとしていますが、PHP のドキュメントには次のように書かれています。

ファイルを投稿するには、ファイル名の先頭に @ を付け、フル パスを使用します。ファイルタイプは、ファイル名の後に「;type=mimetype」の形式でタイプを指定することにより、明示的に指定できます。このパラメーターは、'para1=val1¶2=val2&...' のような urlencoded 文字列として渡すか、フィールド名をキーとしてフィールド データを値として持つ配列として渡すことができます。値が配列の場合、Content-Type ヘッダーは multipart/form-data に設定されます。PHP 5.2.0 以降、ファイルが @ 接頭辞付きでこのオプションに渡される場合、値は配列でなければなりません。PHP 5.5.0 以降、@ プレフィックスは廃止され、CURLFile を使用してファイルを送信できます。

そのため、代わりに CURLFile を使用してみますが、エラーが発生します

未定義関数 curl_file_create() の呼び出し

そう-次に、クラスCURLFileを見つけようとします var_dump(class_exists('curlfile'));

しかし、そうではないと言われています。私は疑問に思います-CURLFileは手動でインストールする必要がありますか? @path/to/file;type=mime はすぐに非推奨になりますが、代わりに使用する方がよいでしょうか?

ありがとうございました

clairy に - curl がインストールされ、動作します。私のシステムに存在しないように見えるのは、ファイル処理のマンボジャンボだけです。

追加するコードがないため、コードを追加しません。curl自体は機能しますが、実行するcurl_file_create()と関数が存在しないという答えが得られます。

4

3 に答える 3

4

--with-curlこの関数を使用するには、PHP がスイッチ付きでコンパイルされている必要があります。出力をチェックしてphpinfo()、PHP がコンパイルされたスイッチを確認します。

Linux を使用している場合は、代わりにモジュールによって Curl サポートが提供される可能性があるため、ディストリビューションのパッケージを確認してください。(たとえば、Debian ではphp5-curlパッケージをインストールする必要があります。)


curl_file_create()PHP 5.5.0 で追加されたことに注意してください。PHP インストールが古い場合、この機能はサポートされません。

于 2013-08-21T16:57:32.607 に答える
1

私は「curl_file_create」と「CurlFile」を使用せず、「@/file_name_with_full_path」を使用することを好みます。

参照リンクを参照し、PHP を介して CURL を介して POST メソッドを介してファイルをアップロードするには、これらの他のメソッドを使用します。

curl と PHP を使用してポスト経由でファイルを送信する

于 2013-08-21T17:15:27.157 に答える
0

xamppまたはwampを使用している場合は、php.iniファイルを更新してcurlを有効にする必要があります。これは、Apacheが使用するフォルダーに別のphp.iniファイルがあるためです。Webサーバーのphp.iniファイルは、phpのphp.iniとは異なりますインストールフォルダ。

于 2013-08-21T17:07:00.113 に答える