php curl post上传图片,PHP POST CURL上传图片

function _curl_multipart_post($url, $post_data, $file_fields = array(), $timeout=30)

{

$result = array('errno' => 0, 'errmsg' => '', 'result' => '');

$ch = curl_init();

//set various curl options first

// set url to post to

curl_setopt($ch, CURLOPT_URL, $url);

// return into a variable rather than displaying it

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

//set curl function timeout to $timeout

curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

curl_setopt($ch, CURLOPT_VERBOSE, false);

//set method to post

curl_setopt($ch, CURLOPT_POST, true);

// disable Expect header

// hack to make it working

$headers = array("Expect: ");

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

// initialize result post array

$result_post = array();

//generate post string

$post_array = array();

$post_strings = array();

if (!is_array($post_data)) {

$result['errno'] = 5;

$result['errmsg'] = 'Params error.';

return json_encode($result);

// return false;

}

foreach($post_data as $key=>$value) {

$post_array[$key] = $value;

$post_strings[] = urlencode($key)."=".urlencode($value);

}

$post_string = implode("&", $post_strings);

// set post string

// curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);

// set multipart form data - file array field-value pairs

if (!empty($file_fields)) {

foreach($file_fields as $key => $value) {

if (strpos(PHP_OS, "WIN") !== false) {

$value = str_replace("/", "\\", $value); // win hack

}

$file_fields[$key] = "@".$value;

}

}

// set post data

$result_post = array_merge($post_array, $file_fields);

if(class_exists("CURLFile")){//zjb 修复新版本PHP引来的Bug

$result_post['Filedata'] = new CURLFile($result_post['filepath']);

}

curl_setopt($ch, CURLOPT_POSTFIELDS, $result_post);

// print_r($result_post);

//and finally send curl request

$output = curl_exec($ch);

$result['result'] = $output;

// print_r($result);

if (curl_errno($ch)) {

if (0) {

echo "Error Occured in Curl\n";

echo "Error number: " .curl_errno($ch) ."\n";

echo "Error message: " .curl_error($ch)."\n";

}

$result['errno'] = curl_errno($ch);

$result['errmsg'] = curl_error($ch);

// return false;

} else {

// return $result;

}

curl_close($ch);

return $result;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用PHPcurl上传图片,可以按照以下步骤进行操作: 1. 首先,确保服务器上已经安装了curl扩展,并在PHP中启用了该扩展。 2. 创建一个curl资源,并设置必要的选项。你可以使用curl_init函数来创建资源,并使用curl_setopt函数来设置选项。 3. 设置请求的URL。使用curl_setopt函数,并将CURLOPT_URL选项设置为目标URL。 4. 设置请求的方法为POST。使用curl_setopt函数,并将CURLOPT_POST选项设置为true。 5. 设置POST的数据。根据你的需求,可以使用curl_setopt函数,并将CURLOPT_POSTFIELDS选项设置为需要发送的数据。对于上传图片,你可以将图片的路径作为POST数据。 6. 执行curl请求并获取响应。使用curl_exec函数来执行curl请求,并使用curl_getinfo函数来获取请求的相关信息。 7. 关闭curl资源。使用curl_close函数来关闭curl资源。 下面是一个示例代码,演示了如何使用curl上传图片: ```php // 图片文件路径 $imagePath = "/path/to/image.jpg"; // 创建curl资源 $curl = curl_init(); // 设置请求的URL curl_setopt($curl, CURLOPT_URL, "http://example.com/upload.php"); // 设置请求的方法为POST curl_setopt($curl, CURLOPT_POST, true); // 设置POST的数据(图片文件路径) curl_setopt($curl, CURLOPT_POSTFIELDS, [ 'upload' => new CURLFile($imagePath) ]); // 执行curl请求并获取响应 $response = curl_exec($curl); // 获取请求的相关信息 $info = curl_getinfo($curl); // 关闭curl资源 curl_close($curl); // 处理响应结果 if ($response === false) { echo "上传失败"; } else { echo "上传成功"; } ``` 在上述代码中,需要将`http://example.com/upload.php`替换为实际的上传图片的URL。另外,你也可以根据需要设置其他curl选项,例如设置请求头信息、设置超时时间等。<span class="em">1</span> #### 引用[.reference_title] - *1* [php curl 上传图片](https://download.csdn.net/download/h_hanlinglingzi/10726132)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值