在运行过程中, 以下两种方式要看你的PHP 版本
'file' =>'@' .$filePath
'file' =>new CURLFile(realpath($filePath))
本次测试是在 php 5.6 , 代码如下
<?php $ch = curl_init(); $filePath = 'C:UsersAdministratorDesktopimg1.jpg'; $data = array('name' => 'Foo', 'file' =>new CURLFile(realpath($filePath)) ); curl_setopt($ch, CURLOPT_URL, 'http://www.img127.com/home/upload/file_one'); curl_setopt($ch, CURLOPT_POST, 1); /*** ** 从可靠的角度,推荐指定CURL_SAFE_UPLOAD的值, ** 明确告知php是容忍还是禁止旧的@语法。注意在低版本PHP中CURLOPT_SAFE_UPLOAD常量本身可能不存在,需要判断: ** *** ***/ if (class_exists('CURLFile')) { curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true); } else { if (defined('CURLOPT_SAFE_UPLOAD')) { curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); } } curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_exec($ch); $aStatus = curl_getinfo($ch); ?>
接收时候。直接 $_files, 就可以了