优化下载地址文件名。
This commit is contained in:
@@ -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']));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user