file_get_contents();
相対ファイルパスを使用する場合、これを使用してサーバーに画像ファイルをアップロードするスクリプトを作成しました。/var/test/image1.jpg
また、リモートURLを使用する場合も同様です。http://domain.com/test/image1.jpg
.
ただし、ローカルパスでは機能しません。file://C:/Users/me/Pictures/image1.jpg. 「file_get_contents(file://C:/Users/me/Pictures/image1.jpg)
[function.file-get-contents]: failed to open stream: No such file or directory」または「remote host file access not supported」というメッセージが表示されます。
リモートクライアントがAPIを介してローカル画像をサーバーにアップロードできるように、ローカルパスで機能するためにこれが本当に必要です。したがって、フォームを使用できず、ここで指定されている PUT メソッドを使用する必要があります ([http://www.php.net/manual/en/features.file-upload.put-method.php][1])。ファイルにアクセスしますか?
私の API のコードは以下のとおりですが、クライアントのローカル マシンからファイルの内容を取得する方法を見つけようとしています。
if($_SERVER['REQUEST_METHOD'] == 'PUT') {
$input = file_get_contents("php://input"); //filepath passed from client in XML
//Convert the XML to an object we can deal with
$xml = simplexml_load_string($input);
$file_path = $xml->image->filepath;
if (file_exists($file_path) ){
$file_data = file_get_contents($file_path);
//Initialise the Curl Instance
$ch = curl_init();
//Set our Curl Options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $file_data);
//Execute the request
$response = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
//Close the Handle
curl_close($ch);
}