feat(frontend): 增强文件管理器上传与右键菜单

新增“上传文件夹”入口,选择目录后先在浏览器端打包为 zip,
上传完成后自动触发远端解压并尝试清理临时压缩包。
同时重排文件右键菜单,补齐终端子菜单、复制文件名与绝对路径等操作,
并扩展上传任务状态展示。

同步前后端包版本到 1.0.0,并将设置页版本显示规范为 1.0
This commit is contained in:
yinjianm
2026-03-26 02:56:19 +08:00
parent dcdc8deab8
commit 3d26bffc99
26 changed files with 1142 additions and 198 deletions
+20 -3
View File
@@ -448,6 +448,7 @@
"refresh": "Refresh",
"parentDirectory": "Parent Directory",
"uploadFile": "Upload File",
"uploadFolder": "Upload Folder",
"upload": "Upload",
"newFolder": "New Folder",
"rename": "Rename",
@@ -463,11 +464,16 @@
"closeTab": "Close Tab",
"closeEditor": "Close Editor",
"cdToTerminal": "Change terminal directory to current path",
"cdToTerminalMenu": "Run cd in terminal",
"copy": "Copy",
"copyFilename": "Copy Filename",
"cut": "Cut",
"paste": "Paste",
"openEditor": "Open Editor",
"copyPath": "Copy Path"
"copyPath": "Copy Absolute Path",
"terminalMenu": "Terminal",
"newTerminalAtPath": "Open New Terminal Here",
"uploadMenu": "Upload"
},
"contextMenu": {
"compress": "Compress",
@@ -485,7 +491,9 @@
"modified": "Modified"
},
"uploadStatus": {
"compressing": "Compressing",
"cancelled": "Cancelled",
"decompressing": "Extracting",
"pending": "Pending",
"uploading": "Uploading"
},
@@ -506,6 +514,7 @@
"loadDirectoryFailed": "Failed to load directory",
"copyFailed": "Copy failed",
"moveFailed": "Move failed",
"uploadFailed": "Upload failed",
"sftpNotReady": "SFTP session not ready",
"sftpManagerNotFound": "SFTP manager not found",
"noActiveSession": "No active session found",
@@ -522,7 +531,10 @@
"commandNotFoundCompress": "Command '{command}' not found on server, cannot complete compression.",
"commandNotFoundDecompress": "Command '{command}' not found on server, cannot complete decompression.",
"genericCommandNotFound": "Command '{command}' not found on server, cannot complete '{operation}' operation.",
"copyPathFailed": "Failed to copy path"
"folderCompressionFailed": "Failed to compress the selected folder",
"archiveCleanupFailed": "Failed to remove temporary archive {name} automatically. Please delete it manually.",
"copyPathFailed": "Failed to copy path",
"copyFilenameFailed": "Failed to copy filename"
},
"notifications": {
"copySuccess": "Copy successful",
@@ -530,7 +542,12 @@
"cdCommandSent": "CD command sent to terminal",
"compressSuccess": "Compressed {name} successfully",
"decompressSuccess": "Decompressed {name} successfully",
"pathCopied": "Path copied to clipboard"
"folderArchiveQueued": "{count} files selected. Preparing archive upload.",
"folderArchivePreparing": "Compressing {count} files",
"folderArchiveReady": "Archive ready. {count} files prepared for upload.",
"folderArchiveUploading": "Uploading archive and preparing automatic extraction",
"pathCopied": "Path copied to clipboard",
"filenameCopied": "Filename copied to clipboard"
},
"warnings": {
"moveSameDirectory": "Cannot cut and paste in the same directory."
+20 -3
View File
@@ -439,6 +439,7 @@
"closeEditor": "エディターを閉じる",
"closeTab": "タブを閉じる",
"copy": "コピー",
"copyFilename": "ファイル名をコピー",
"cut": "切り取り",
"delete": "削除",
"deleteMultiple": "{count} 個の項目を削除",
@@ -455,7 +456,12 @@
"save": "保存",
"upload": "アップロード",
"uploadFile": "ファイルをアップロード",
"copyPath": "パスをコピー"
"uploadFolder": "フォルダをアップロード",
"copyPath": "絶対パスをコピー",
"cdToTerminalMenu": "cd コマンドをターミナルで実行",
"terminalMenu": "ターミナル",
"newTerminalAtPath": "このディレクトリで新しいターミナルを開く",
"uploadMenu": "アップロード"
},
"contextMenu": {
"compress": "圧縮",
@@ -484,6 +490,7 @@
"loadDirectoryFailed": "ディレクトリの読み込みに失敗しました",
"missingConnectionId": "現在の接続 ID を取得できません",
"moveFailed": "移動に失敗しました",
"uploadFailed": "アップロードに失敗しました",
"noActiveSession": "アクティブなセッションが見つかりません",
"readFileError": "ファイルの読み取り中にエラーが発生しました",
"readFileFailed": "ファイルの読み取りに失敗しました",
@@ -503,7 +510,10 @@
"commandNotFoundCompress": "サーバーにコマンド '{command}' が見つからないため、圧縮操作を完了できません。",
"commandNotFoundDecompress": "サーバーにコマンド '{command}' が見つからないため、解凍操作を完了できません。",
"genericCommandNotFound": "サーバーにコマンド '{command}' が見つからないため、'{operation}' 操作を完了できません。",
"copyPathFailed": "パスのコピーに失敗しました"
"folderCompressionFailed": "選択したフォルダの圧縮に失敗しました",
"archiveCleanupFailed": "一時アーカイブ {name} の自動削除に失敗しました。手動で削除してください。",
"copyPathFailed": "パスのコピーに失敗しました",
"copyFilenameFailed": "ファイル名のコピーに失敗しました"
},
"headers": {
"modified": "変更日",
@@ -521,7 +531,12 @@
"moveSuccess": "移動に成功しました",
"compressSuccess": "{name} を正常に圧縮しました",
"decompressSuccess": "{name} を正常に解凍しました",
"pathCopied": "パスがクリップードにコピーされました"
"folderArchiveQueued": "{count} 件のファイルを選択しました。圧縮アップードを準備しています。",
"folderArchivePreparing": "{count} 件のファイルを圧縮中",
"folderArchiveReady": "圧縮が完了しました。{count} 件のファイルをアップロードできます。",
"folderArchiveUploading": "アーカイブをアップロードし、自動展開を準備しています",
"pathCopied": "パスがクリップボードにコピーされました",
"filenameCopied": "ファイル名がクリップボードにコピーされました"
},
"prompts": {
"confirmDeleteFile": "ファイル \"{name}\" を削除しますか?この操作は元に戻せません。",
@@ -539,7 +554,9 @@
"searchPlaceholder": "ファイルを検索...",
"selectFileToEdit": "ファイルマネージャーから編集するファイルを選択してください。",
"uploadStatus": {
"compressing": "圧縮中",
"cancelled": "キャンセルされました",
"decompressing": "展開中",
"pending": "待機中",
"uploading": "アップロード中"
},
+20 -3
View File
@@ -448,6 +448,7 @@
"refresh": "刷新",
"parentDirectory": "上一级",
"uploadFile": "上传文件",
"uploadFolder": "上传文件夹",
"upload": "上传",
"newFolder": "新建文件夹",
"newFile": "新建文件",
@@ -463,11 +464,16 @@
"closeTab": "关闭标签页",
"closeEditor": "关闭编辑器",
"cdToTerminal": "将终端目录切换到当前路径",
"cdToTerminalMenu": "执行 cd 命令到终端",
"copy": "复制",
"copyFilename": "复制文件名",
"cut": "剪切",
"paste": "粘贴",
"openEditor": "打开编辑器",
"copyPath": "复制路径"
"copyPath": "复制绝对路径",
"terminalMenu": "终端",
"newTerminalAtPath": "新建终端到当前目录",
"uploadMenu": "上传"
},
"contextMenu": {
"compress": "压缩",
@@ -485,7 +491,9 @@
"modified": "修改时间"
},
"uploadStatus": {
"compressing": "压缩中",
"cancelled": "已取消",
"decompressing": "解压中",
"pending": "等待中",
"uploading": "上传中"
},
@@ -506,6 +514,7 @@
"loadDirectoryFailed": "加载目录失败",
"copyFailed": "复制失败",
"moveFailed": "移动失败",
"uploadFailed": "上传失败",
"sftpNotReady": "SFTP 会话未就绪",
"sftpManagerNotFound": "SFTP 管理器未找到",
"noActiveSession": "未找到活动会话",
@@ -522,7 +531,10 @@
"commandNotFoundCompress": "服务器上缺少 '{command}' 命令,无法完成压缩操作。",
"commandNotFoundDecompress": "服务器上缺少 '{command}' 命令,无法完成解压操作。",
"genericCommandNotFound": "服务器上缺少 '{command}' 命令,无法完成 '{operation}' 操作。",
"copyPathFailed": "复制路径失败"
"folderCompressionFailed": "文件夹压缩失败",
"archiveCleanupFailed": "自动清理临时压缩包 {name} 失败,请手动删除。",
"copyPathFailed": "复制路径失败",
"copyFilenameFailed": "复制文件名失败"
},
"notifications": {
"copySuccess": "复制成功",
@@ -530,7 +542,12 @@
"cdCommandSent": "CD 命令已发送到终端",
"compressSuccess": "压缩 {name} 成功",
"decompressSuccess": "解压 {name} 成功",
"pathCopied": "路径已复制到剪贴板"
"folderArchiveQueued": "已选择 {count} 个文件,准备压缩上传",
"folderArchivePreparing": "正在压缩 {count} 个文件",
"folderArchiveReady": "压缩完成,准备上传 {count} 个文件",
"folderArchiveUploading": "正在上传压缩包并准备自动解压",
"pathCopied": "路径已复制到剪贴板",
"filenameCopied": "文件名已复制到剪贴板"
},
"warnings": {
"moveSameDirectory": "不能在同一目录下剪切和粘贴。"