我正在尋找寫一個服務器上的函數來接受從任何其他服務器上傳的文件,換句話說就是類似於api。使用CURL接受文件上傳php
假設在www.upload.com上有一個上傳腳本來上傳文件。而不是在該服務器上進行發佈和保存,我希望他們在fileserver.com上捲曲我的腳本以保存文件。
我上fileserver.com功能來保存文件看起來像這樣
function upload($data) {
$uploaddir = '/data/';
$uploadfile = $uploaddir . 'filename.jpg';
if(move_uploaded_file($data['upload_file'], $uploadfile)) {
return 'saved successfully';
} else {
return 'bad file';
}
}
和upload.com服務器上我測試的例子與此:
if($_POST) {
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://fileserver.com/upload.php');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, '[email protected]'.$data['img_file']['tmp_name']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
}
請記住這是作爲一個API的目的,所以執行curl的功能是嚴格測試的。上傳功能是api功能。有誰知道如何做到這一點,或者我做錯了什麼,甚至有可能。