Die Ausführung dieses Curl-Befehls vom Terminal funktioniert und ich bekomme meine Ergebnisse zurück.Wie führe ich diesen Curl-Befehl in PHP aus?
curl -F "[email protected]/var/www/html/uploads/fb5bc34e1f0f03c759e92010f6a1a302_modified.csv" http://10.0.0.106:8089/uploadAndMatch/ -o ~/out.txt
Aber wenn es von PHP mit dem folgenden Code versuche ich 400 httpcode bin immer:
$request = curl_init('http://10.0.0.106:8089/uploadAndMatch/');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request,
CURLOPT_POSTFIELDS,
array(
'file' => '@/var/www/html/uploads/fb5bc34e1f0f03c759e92010f6a1a302_modified.csv'
));
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($request);
$httpcode = curl_getinfo($request, CURLINFO_HTTP_CODE);
echo $httpcode;
curl_close($request);
Ich habe auch versucht, einen Header hinzuzufügen:
$header = array('Content-Type: multipart/form-data');
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, 1);
Aber es ist immer noch die gleiche Error! 400 bad request
Irgendwelche Gedanken?
Es war kein Debug-Problem, dann ist es, weil die changes in php5.5 +
können Sie die tatsächlichen Anfragen (curl, php + curl) mit wireshark vergleichen? hast du Zugriff auf die Server-code/logs? – BNT
auch, vielleicht unterstützt Ihr Server keine Formulardaten wie angegeben [hier] (https://Stackoverflow.com/a/28411/7926064), also versuchen Sie [http_build_query] (http://php.net/manual/en /function.http-build-query.php) – BNT
Mögliches Duplikat von [Php - Debugging Curl] (https://stackoverflow.com/questions/3757071/php-debugging-curl) – Nic3500