我为S3提供了一项服务,通过该服务,多个应用程序可以通过S3上传文件。
上传文件的链接如下:
http://localhost:8000/api/v1/s3/add
从我的一个应用程序中,我正在尝试做这样的事情:
public function upload(Illuminate\Http\Request $request) {
$curl_add_file = curl_init('http://localhost:8000/api/v1/s3/add');
$file = $request->file('file_image');
$data['doc'] = $file;
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type:multipart/form-data'
));
curl_setopt($ch, CURLOPT_URL,"http://localhost:8000/api/v1/s3/add");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($request);
}
在S3服务控制器上,我这样做:
public function saveToS3(Illuminate\Http\Request $request) {
$request->hasFile('doc') {
//Code to save on S3
} else {
//echo 'false';
}
}
它总是转到else语句并返回false。
当我调试$ request包含的内容时,它为我提供了一个临时位置,类似于doc的值:'\ opt \ lamp \ temp \ Ph6FG7n'
我错过了什么? 如何使用curl将文件发送到其他服务?
我在使用Service for S3这里不是我的所有应用程序都在Laravel上;有些人正在使用Core PHP。