0

我正在为我为客户编写的应用程序创建一个 API,因为他们既需要网站也需要移动应用程序。API 和应用程序是用 PHP 编写的,使用 Codeigniter 框架。

我想使用输入文件通过应用程序上传文件。然后如何通过 cURL 将此文件发送到 API,以便我可以在 $_FILES 变量中获取文件?

理想情况下,我想使用 POST 方法,但如有必要,我也可以使用 PUT 或类似方法。

谢谢

小号

=== 更新 ===

我知道如何将文件从应用程序传递到 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 。

假设传入的文件是通过 POST 发送的,名称为“input_file”。

$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 回答