我正在寻找写一个服务器上的函数来接受从任何其他服务器上传的文件,换句话说就是类似于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功能。有谁知道如何做到这一点,或者我做错了什么,甚至有可能。