0

クライアントがWebサイトとモバイルアプリの両方を必要としているため、クライアント用に作成しているアプリケーションのAPIを作成しています。APIとアプリケーションは、Codeigniterフレームワークを使用してPHPで記述されています。

入力ファイルを使用して、アプリケーション経由でファイルをアップロードしたい。次に、このファイルをcURL経由でAPIに送信して、$ _ FILES変数でファイルを取得できるようにするにはどうすればよいですか?

理想的にはPOSTメソッドを使用したいのですが、必要に応じてPUTなどを使用することもできます。

ありがとう

S

===更新===

私はファイルをアプリケーションからAPIに渡す方法を知っています-私の質問の推力は、APIにファイルが入ったらファイルを解析する方法に関係しています。フォームを使用してファイルをアップロードすると、$_FILESに一時ファイル参照が表示されます。これをエミュレートします。

4

2 に答える 2

0
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
curl_setopt($ch, CURLOPT_URL, _VIRUS_SCAN_URL);
curl_setopt($ch, CURLOPT_POST, true);
// same as <input type="file" name="file_box">
$post = array(
    "file_box"=>"@/path/to/myfile.jpg",
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
$response = curl_exec($ch);

?>

参照 :: http://dtbaker.com.au/random-bits/uploading-a-file-using-curl-in-php.html

于 2012-12-06T10:00:07.433 に答える
0

ファイルをアップロードするには、ファイル パスの前に「@」文字を追加します。

あなたの場合、入力ファイルの tmp_name を使用してください。

着信ファイルが「input_file」という名前で POST 経由で送信されると仮定します。

$curl = curl_init(/* Your URL goes here. */);

curl_setopt_array($curl, array(
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => array(
        'file' => "@$_FILES[input_file][tmp_name]"
    )
));

curl_exec($curl);

それが役立つことを願っています。

于 2012-12-06T10:00:24.260 に答える