|
@@ -985,15 +985,32 @@ class PatientServies
|
|
|
$hz = end($arr);
|
|
|
$filePath = $_SERVER['DOCUMENT_ROOT'].'/report/'.time().rand(0,9999).'.'.$hz; // 本地文件路径
|
|
|
$savePath = $_SERVER['HTTP_HOST'].'/report/'.time().rand(0,9999).'.'.$hz; // 本地文件路径
|
|
|
- ob_start(); //打开输出
|
|
|
- readfile($base64_string); //输出图片文件
|
|
|
- $return = ob_get_contents(); //得到浏览器输出
|
|
|
- if(empty($return))
|
|
|
- {
|
|
|
+
|
|
|
+
|
|
|
+ // 检查目标 URL 是否有效
|
|
|
+ if (!filter_var($base64_string, FILTER_VALIDATE_URL)) {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+
|
|
|
+ // 创建流上下文并设置超时时间为 5 秒
|
|
|
+ $context = stream_context_create([
|
|
|
+ 'http' => [
|
|
|
+ 'timeout' => 5 // 设置超时时间为 5 秒
|
|
|
+ ]
|
|
|
+ ]);
|
|
|
+ // 获取文件内容
|
|
|
+ $content = file_get_contents($url, false, $context);
|
|
|
+
|
|
|
+ // 检查是否成功获取文件内容
|
|
|
+ if ($content === false) {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ // 保存文件到本地目录
|
|
|
+ $result = file_put_contents($filePath, $content);
|
|
|
+ // 检查是否成功保存文件
|
|
|
+ if ($result === false) {
|
|
|
return '';
|
|
|
}
|
|
|
- ob_end_clean(); //清除输出并关闭
|
|
|
- file_put_contents($filePath, $return);
|
|
|
|
|
|
}else{
|
|
|
// 将Base64字符串分割成数据和文件类型
|