ここ数日、ファイルを転送するために Java インターフェイスを呼び出す必要があるため、ファイルを転送する必要がありました。ここでの落とし穴は、ファイルを転送するときに、元の @ の後にファイルの絶対パスを直接使用したことです。 。
しかし、エラーは出ませんでしたが、送信されなかったような気がしました。後でwinで試してみると、このメソッドは古いので、代わりにcurlfile関数を使用してくださいという警告が直接スローされました。今になって初めて、私のコンピューターは一度も警告をオンにしてエラーを報告したことがなかったのですが、Win 環境では常にオンにしていたため、しばらくこの問題に悩まされていました。
以下のコードを見て、curl がどのようにファイルと配列データを転送するかを見てみましょう。
$beforePath = '/Applications/MAMP/htdocs/photo/1.jpg'; $afterPath = '/Applications/MAMP/htdocs/photo/2.jpg';//绝对路径 $data = [ 'top' => curl_file_create($beforePath), 'after' => curl_file_create($afterPath), 'partnerId' => $data['0']['uid'], 'mobile' => $data1['0']['phone'], 'email' => $data1['0']['email'], 'realName' => $data['0']['real_name'], ]; curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //禁用证书 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch,CURLOPT_BINARYTRANSFER,true); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); curl_setopt($ch, CURLOPT_URL, $url); $info= curl_exec($ch); curl_close($ch);
上記はファイルを転送するためのcurlの上位バージョンと下位バージョンを内容も含めて紹介しており、PHPチュートリアルに興味のある友人に役立つことを願っています。