fix: 文件下载

This commit is contained in:
bietiaop
2025-02-04 15:31:10 +08:00
parent 715c4ac534
commit 26734a35ef
3 changed files with 19 additions and 1 deletions

View File

@@ -9,6 +9,7 @@ import {
import { Spinner } from '@heroui/spinner'
import { useRequest } from 'ahooks'
import path from 'path-browserify'
import { useEffect } from 'react'
import FileManager from '@/controllers/file_manager'
@@ -33,6 +34,7 @@ export default function FilePreviewModal({
async () => FileManager.downloadToURL(filePath),
{
refreshDeps: [filePath],
manual: true,
refreshDepsAction: () => {
const ext = path.extname(filePath).toLowerCase()
if (!filePath || !supportedPreviewExts.includes(ext)) {
@@ -66,6 +68,12 @@ export default function FilePreviewModal({
)
}
useEffect(() => {
if (filePath) {
run()
}
}, [])
return (
<Modal isOpen={isOpen} onClose={onClose} scrollBehavior="inside" size="3xl">
<ModalContent>

View File

@@ -33,6 +33,7 @@ export default function ImageNameButton({
async () => FileManager.downloadToURL(filePath),
{
refreshDeps: [filePath],
manual: true,
refreshDepsAction: () => {
const ext = path.extname(filePath).toLowerCase()
if (!filePath || !imageExts.includes(ext)) {
@@ -52,6 +53,11 @@ export default function ImageNameButton({
}
}, [data, name, onAddPreview])
useEffect(() => {
if (filePath) {
run()
}
}, [])
return (
<Button
variant="light"

View File

@@ -268,7 +268,11 @@ export const BatchMoveHandler: RequestHandler = async (req, res) => {
// 新增:文件下载处理方法(注意流式传输,不将整个文件读入内存)
export const DownloadHandler: RequestHandler = async (req, res) => {
try {
const filePath = normalizePath(req.query['path'] as string);
const filePath = normalizePath( req.query[ 'path' ] as string );
if (!filePath) {
return sendError( res, '参数错误' );
}
const stat = await fsProm.stat(filePath);
res.setHeader('Content-Type', 'application/octet-stream');