我正在尝试使用Api在服务器上传文件。它在localhost上成功它工作正常我可以轻松地在服务器上传文件。 但是当我的代码进入服务器然后它没有上传。我给读取写入权限到我从中获取图像或文件的文件夹。 这是我的卷曲代码:
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
if($api_type == 2){
//$mm = array("message" => $message);
$message = str_replace("\n", "\\n", $message);
$message = '{"message":"'.$message.'"}';
curl_setopt($c, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
));
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS,$message);
}
if($api_type == 3 & $attachment != NULL){
$data = array( 'file' => '@'.self::basePath().'/../user_uploads/hipchat_image/'.$attachment);
curl_setopt($c, CURLOPT_HTTPHEADER, array(
'Content-Type: multipart/related',
));
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS,$data);
}
return curl_exec($c);
答案 0 :(得分:2)
你可以试试......
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
根据PHP版本,这默认为php 5.5中的false
和5.6+中的true
...所以请检查PHP的本地和Web服务器版本。
答案 1 :(得分:1)
PHP 7删除此选项curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
必须使用CURLFile
接口上传文件。
你可以写这样的代码
$data = array('file'=>new CURLFile('/file/path'));