优化下载地址文件名。
This commit is contained in:
@@ -92,25 +92,25 @@ class Zm extends Command
|
|||||||
$class_id = $class_details['data']['classSection']['id'];
|
$class_id = $class_details['data']['classSection']['id'];
|
||||||
|
|
||||||
if(!empty($class_details['data']['classSection']['video'])){
|
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';
|
$downloadurl = $class_path . '/' . $file_name . '-下载地址.txt';
|
||||||
$this->savetxt($downloadurl,$class_details['data']['classSection']['video']);
|
$this->savetxt($downloadurl,$class_details['data']['classSection']['video']);
|
||||||
$this->download($class_details['data']['classSection']['video'],$class_path,$file_name);
|
$this->download($class_details['data']['classSection']['video'],$class_path,$file_name);
|
||||||
}
|
}
|
||||||
if(!empty($class_details['data']['classSection']['courseware'])){
|
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';
|
$downloadurl = $class_path . '/' . $file_name . '-下载地址.txt';
|
||||||
$this->savetxt($downloadurl,$class_details['data']['classSection']['courseware']);
|
$this->savetxt($downloadurl,$class_details['data']['classSection']['courseware']);
|
||||||
$this->download($class_details['data']['classSection']['courseware'],$class_path,$file_name);
|
$this->download($class_details['data']['classSection']['courseware'],$class_path,$file_name);
|
||||||
}
|
}
|
||||||
if(!empty($class_details['data']['classSection']['construction_draw'])){
|
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';
|
$downloadurl = $class_path . '/' . $file_name . '-下载地址.txt';
|
||||||
$this->savetxt($downloadurl,$class_details['data']['classSection']['construction_draw']);
|
$this->savetxt($downloadurl,$class_details['data']['classSection']['construction_draw']);
|
||||||
$this->download($class_details['data']['classSection']['construction_draw'],$class_path,$file_name);
|
$this->download($class_details['data']['classSection']['construction_draw'],$class_path,$file_name);
|
||||||
}
|
}
|
||||||
if(!empty($class_details['data']['classSection']['construction_draw_3d'])){
|
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';
|
$downloadurl = $class_path . '/' . $file_name . '-下载地址.txt';
|
||||||
$this->savetxt($downloadurl,urldecode($class_details['data']['classSection']['construction_draw_3d']));
|
$this->savetxt($downloadurl,urldecode($class_details['data']['classSection']['construction_draw_3d']));
|
||||||
$this->download($class_details['data']['classSection']['construction_draw_3d'],$class_path,$file_name);
|
$this->download($class_details['data']['classSection']['construction_draw_3d'],$class_path,$file_name);
|
||||||
@@ -366,4 +366,29 @@ class Zm extends Command
|
|||||||
fclose($myfile);
|
fclose($myfile);
|
||||||
// dump('已保存文本内容:'.$file);
|
// 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