fix: SFTP下载使用新窗口打开直链

- app.js downloadFile: SFTP有直链时用window.open新窗口打开
- share.html downloadFile: 分享页面同样处理
- 本地存储下载保持原有方式不变
- 解决HTTPS页面下载HTTP直链的Mixed Content问题

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-27 15:24:20 +08:00
parent 482a610420
commit d2aa115b5b
3 changed files with 12 additions and 7 deletions

View File

@@ -2541,6 +2541,6 @@
}
</style>
<script src="app.js?v=20251127001"></script>
<script src="app.js?v=20251127003"></script>
</body>
</html>

View File

@@ -983,11 +983,15 @@ handleDragLeave(e) {
downloadFile(file) {
console.log("[DEBUG] 下载文件:", file);
const url = file.httpDownloadUrl
? file.httpDownloadUrl
: `${this.apiBase}/api/files/download?path=${encodeURIComponent(this.currentPath === '/' ? `/${file.name}` : `${this.currentPath}/${file.name}`)}`;
// 统一通过隐藏链接触发下载避免弹出新窗口
// SFTP存储且有HTTP直链新窗口打开直接下载避免Mixed Content问题
if (file.httpDownloadUrl) {
window.open(file.httpDownloadUrl, '_blank');
return;
}
// 本地存储,使用隐藏链接触发下载
const url = `${this.apiBase}/api/files/download?path=${encodeURIComponent(this.currentPath === '/' ? `/${file.name}` : `${this.currentPath}/${file.name}`)}`;
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', file.name);

View File

@@ -752,9 +752,10 @@
.catch(err => console.error('记录下载次数失败:', err));
if (file.httpDownloadUrl) {
// 如果配置了HTTP下载URL使用HTTP直接下载
// 如果配置了HTTP下载URL新窗口打开直接下载避免Mixed Content问题
console.log("[分享下载] 使用HTTP下载:", file.httpDownloadUrl);
this.triggerDownload(file.httpDownloadUrl, file.name);
window.open(file.httpDownloadUrl, '_blank');
return;
} else {
// 如果没有配置HTTP URL通过后端SFTP下载
console.log("[分享下载] 使用SFTP下载");