Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用curl-php将文件上载到java服务器(MultipartEntity)_Php_Web Services_Curl - Fatal编程技术网

如何使用curl-php将文件上载到java服务器(MultipartEntity)

如何使用curl-php将文件上载到java服务器(MultipartEntity),php,web-services,curl,Php,Web Services,Curl,我正在开发一个web门户,它使用来自java的RESTAPI。通过使用curl,我能够轻松地发送post请求和接收响应,但我无法使用curl发送文件,它显示了错误“HTTP状态500-无法在部件中找到任何内容处置头”: 这是我的密码: $filename = $_FILES['uploadedfile']['tmp_name']; $handle = fopen($filename, "r"); $data = '@'.fread($handle, filesize($f

我正在开发一个web门户,它使用来自java的RESTAPI。通过使用curl,我能够轻松地发送post请求和接收响应,但我无法使用curl发送文件,它显示了错误“HTTP状态500-无法在部件中找到任何内容处置头”

这是我的密码:

 $filename  = $_FILES['uploadedfile']['tmp_name'];
 $handle    = fopen($filename, "r");
 $data      = '@'.fread($handle, filesize($filename));
 $dat = base64_encode($data);
 $POST_DATA = array(
   'imageName' => $dat,
     "Id" => "690",
 );
 $boundary = '--myboundary-xxx';
 var_dump($POST_DATA);
 $params = json_encode($POST_DATA);

 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, 'http://localhost.com/Project/REST/webservice/saveImage');
 curl_setopt($curl, CURLOPT_HTTPHEADER, array(
 'Content-Type:multipart/form-data; boundary=$boundary; ',  
 'Content-Disposition: attachment; filename:"$filename";',
 'Content-Length: ' . strlen($params) 
 )); 
 curl_setopt($curl, CURLOPT_TIMEOUT, 30);
 curl_setopt($curl, CURLOPT_POST, 1);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($curl, CURLOPT_POSTFIELDS, $params);

 $response = curl_exec($curl);
  var_dump(curl_getinfo($curl));

 curl_close ($curl);
 var_dump($response);
 echo $response;
}
你试过了吗

curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type:multipart/form-data; boundary='.$boundary.'; ',
    'Content-Disposition: attachment; filename='.$filename.';',
    'Content-Length: ' . strlen($params)
));

谢谢你的建议。我试过了,但没用。