现在需要弄个定时器定时去查表然后自动把生成的Excel文件保存到OSS服务器上边,要怎么弄啊
可以先生成,再上传就好了
这里有个demo你可以看看,记得修改配置文件
/**
* 本地文件上传OSS
* @param Request $request
* @return bool|IlluminateHttpJsonResponse
*/
public function localLoadFile(Request $request)
{
if ($request->hasFile('file')) {
if ($request->file('file')->isValid()) {
// 上传文件
$path = 'contract' . DIRECTORY_SEPARATOR . date('Y') . DIRECTORY_SEPARATOR . date('m') . DIRECTORY_SEPARATOR . date('d');
//上传到oss
$image_path = upload_image($path, $request->file('file'), 'oss');
if ($image_path) {
return $image_path;
} else {
return false;
}
}
}
return Helper::jsonErrorData(ApiErr::UPLOAD_ERR);
}
/**
* curl上传本地文件到OSS
* @param $path
* @return array|bool|string
*/
public function localFile($path)
{
$data = [
'file' => new CURLFile(realpath($path))
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, route('api.esign.testLoadFile'));//此处以当前服务器为接收地址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);//设置最长等待时间
curl_setopt($ch, CURLOPT_POST, 1);//post提交
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$data = curl_exec($ch);//执行
if (curl_errno($ch)) {
return curl_error($ch);
}
curl_close($ch);//释放
return $data;
}