mirror of
https://github.com/qaiu/netdisk-fast-download.git
synced 2026-02-24 06:05:23 +00:00
fix(LeTool): 修复子目录 fileId URL 编码问题
- 在构建 parserUrl 时对 fileId 进行 URL 编码 - 避免 %2B 等特殊字符被前端 axios 自动解码导致请求失败 - 添加异常处理和降级方案
This commit is contained in:
@@ -10,6 +10,8 @@ import io.vertx.core.Promise;
|
|||||||
import io.vertx.core.json.JsonArray;
|
import io.vertx.core.json.JsonArray;
|
||||||
import io.vertx.core.json.JsonObject;
|
import io.vertx.core.json.JsonObject;
|
||||||
|
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.net.URLEncoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -202,12 +204,21 @@ public class LeTool extends PanBase {
|
|||||||
fileInfo.setFileType("folder");
|
fileInfo.setFileType("folder");
|
||||||
fileInfo.setSize(0L);
|
fileInfo.setSize(0L);
|
||||||
fileInfo.setSizeStr("0B");
|
fileInfo.setSizeStr("0B");
|
||||||
// 设置目录解析的URL - 注意:从API返回的fileId已经是URL编码的,直接使用
|
// 设置目录解析的URL - fileId 需要进行 URL 编码以保持特殊字符的编码状态
|
||||||
// 不需要再次编码,避免双重编码导致解析失败
|
try {
|
||||||
fileInfo.setParserUrl(String.format("%s/v2/getFileList?url=%s&dirId=%s",
|
String encodedFileId = URLEncoder.encode(fileId, "UTF-8");
|
||||||
getDomainName(),
|
fileInfo.setParserUrl(String.format("%s/v2/getFileList?url=%s&dirId=%s",
|
||||||
shareLinkInfo.getShareUrl(),
|
getDomainName(),
|
||||||
fileId));
|
shareLinkInfo.getShareUrl(),
|
||||||
|
encodedFileId));
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
log.error("URL编码失败: {}", e.getMessage());
|
||||||
|
// 降级方案:直接使用原始 fileId
|
||||||
|
fileInfo.setParserUrl(String.format("%s/v2/getFileList?url=%s&dirId=%s",
|
||||||
|
getDomainName(),
|
||||||
|
shareLinkInfo.getShareUrl(),
|
||||||
|
fileId));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// 文件类型
|
// 文件类型
|
||||||
fileInfo.setFileType(fileType != null ? String.valueOf(fileType) : DEFAULT_FILE_TYPE);
|
fileInfo.setFileType(fileType != null ? String.valueOf(fileType) : DEFAULT_FILE_TYPE);
|
||||||
|
|||||||
Reference in New Issue
Block a user