优化下载地址文件名。

This commit is contained in:
2025-04-18 10:58:50 +08:00
parent 833fe44281
commit 2fc6e5a793

View File

@@ -92,25 +92,25 @@ class Zm extends Command
$class_id = $class_details['data']['classSection']['id'];
if(!empty($class_details['data']['classSection']['video'])){
$file_name = urldecode(basename($class_details['data']['classSection']['video']));
$file_name = $this->getFileNameFromUrl($class_details['data']['classSection']['video']);
$downloadurl = $class_path . '/' . $file_name . '-下载地址.txt';
$this->savetxt($downloadurl,$class_details['data']['classSection']['video']);
$this->download($class_details['data']['classSection']['video'],$class_path,$file_name);
}
if(!empty($class_details['data']['classSection']['courseware'])){
$file_name = urldecode(basename($class_details['data']['classSection']['courseware']));
$file_name = $this->getFileNameFromUrl($class_details['data']['classSection']['courseware']);
$downloadurl = $class_path . '/' . $file_name . '-下载地址.txt';
$this->savetxt($downloadurl,$class_details['data']['classSection']['courseware']);
$this->download($class_details['data']['classSection']['courseware'],$class_path,$file_name);
}
if(!empty($class_details['data']['classSection']['construction_draw'])){
$file_name = urldecode(basename($class_details['data']['classSection']['construction_draw']));
$file_name = $this->getFileNameFromUrl($class_details['data']['classSection']['construction_draw']);
$downloadurl = $class_path . '/' . $file_name . '-下载地址.txt';
$this->savetxt($downloadurl,$class_details['data']['classSection']['construction_draw']);
$this->download($class_details['data']['classSection']['construction_draw'],$class_path,$file_name);
}
if(!empty($class_details['data']['classSection']['construction_draw_3d'])){
$file_name = urldecode(basename($class_details['data']['classSection']['construction_draw_3d']));
$file_name = $this->getFileNameFromUrl($class_details['data']['classSection']['construction_draw_3d']);
$downloadurl = $class_path . '/' . $file_name . '-下载地址.txt';
$this->savetxt($downloadurl,urldecode($class_details['data']['classSection']['construction_draw_3d']));
$this->download($class_details['data']['classSection']['construction_draw_3d'],$class_path,$file_name);
@@ -366,4 +366,29 @@ class Zm extends Command
fclose($myfile);
// dump('已保存文本内容:'.$file);
}
/**
* 从URL中提取并解码文件名
* @param string $url 包含文件名的URL
* @param bool $throwExceptions 是否抛出异常 (默认true)
* @return string|null 成功返回文件名失败返回null(仅当$throwExceptions=false时)
* @throws \InvalidArgumentException
*/
function getFileNameFromUrl(string $url, bool $throwExceptions = true): ?string
{
// 解析URL结构
$parsed = parse_url($url);
// 错误检测逻辑
if ($parsed === false || !isset($parsed['path'])) {
$errorMsg = "无效的URL格式: " . json_encode($url);
if ($throwExceptions) {
throw new \InvalidArgumentException($errorMsg);
}
trigger_error($errorMsg, E_USER_WARNING);
return null;
}
// 提取并解码文件名
return urldecode(basename($parsed['path']));
}
}