diff --git a/frontend/app.html b/frontend/app.html index 0e47f56..63d1bf1 100644 --- a/frontend/app.html +++ b/frontend/app.html @@ -2541,6 +2541,6 @@ } - + diff --git a/frontend/app.js b/frontend/app.js index a3c05fd..c6dbe58 100644 --- a/frontend/app.js +++ b/frontend/app.js @@ -983,28 +983,9 @@ handleDragLeave(e) { downloadFile(file) { console.log("[DEBUG] 下载文件:", file); - - // 构建后端代理下载URL - const proxyUrl = `${this.apiBase}/api/files/download?path=${encodeURIComponent(this.currentPath === '/' ? `/${file.name}` : `${this.currentPath}/${file.name}`)}`; - - let url = proxyUrl; - - // 检查是否有HTTP直链可用 - if (file.httpDownloadUrl) { - // 检测Mixed Content:HTTPS页面不能加载HTTP资源 - const isHttpsPage = window.location.protocol === 'https:'; - const isHttpLink = file.httpDownloadUrl.startsWith('http://'); - - if (isHttpsPage && isHttpLink) { - // HTTPS页面 + HTTP直链 = Mixed Content,使用后端代理 - console.log("[DEBUG] 检测到Mixed Content,使用后端代理下载"); - this.showToast('info', '提示', '由于安全限制,正在通过服务器代理下载'); - url = proxyUrl; - } else { - // 可以使用直链 - url = file.httpDownloadUrl; - } - } + const url = file.httpDownloadUrl + ? file.httpDownloadUrl + : `${this.apiBase}/api/files/download?path=${encodeURIComponent(this.currentPath === '/' ? `/${file.name}` : `${this.currentPath}/${file.name}`)}`; // 统一通过隐藏链接触发下载,避免弹出新窗口 const link = document.createElement('a'); @@ -1222,25 +1203,13 @@ handleDragLeave(e) { ? `/${file.name}` : `${this.currentPath}/${file.name}`; - // 构建后端代理URL - const proxyUrl = `${this.apiBase}/api/files/download?path=${encodeURIComponent(filePath)}`; - - // SFTP存储且配置了HTTP下载URL + // SFTP存储且配置了HTTP下载URL,使用HTTP直接访问;否则使用API下载 if (file.httpDownloadUrl) { - // 检测Mixed Content:HTTPS页面不能加载HTTP资源 - const isHttpsPage = window.location.protocol === 'https:'; - const isHttpLink = file.httpDownloadUrl.startsWith('http://'); - - if (isHttpsPage && isHttpLink) { - // HTTPS页面 + HTTP直链 = Mixed Content,使用后端代理 - console.log("[DEBUG] 媒体预览检测到Mixed Content,使用后端代理"); - return proxyUrl; - } return file.httpDownloadUrl; } // 本地存储或未配置HTTP URL,使用API下载(同域 Cookie 验证) - return proxyUrl; + return `${this.apiBase}/api/files/download?path=${encodeURIComponent(filePath)}`; }, // 获取文件缩略图URL