commit cf048d710092aa6361a0466cf433aca7333e9465
parent cede3f3b0ab992e1be28867b6c0ce233c527ca11
Author: minerva-jupitr <ryouturn@gmail.com>
Date: Mon, 5 Aug 2024 21:32:46 +0900
帰ってきたリンクの埋め込みの途中
Diffstat:
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/app/fileUploader.ts b/src/app/fileUploader.ts
@@ -3,12 +3,13 @@ import { promises as fs } from "node:fs";
import { resolve } from "node:path";
import { revalidatePath } from "next/cache";
-export async function uploadFile(formData: FormData) {
+export async function fileUploader(formData: FormData) {
const file = formData.get("file") as File;
+ let filePath = 'download/c5fdf674-4dde-4a2c-8549-4c6d811f2fbc.pdf'
if (file && file.size > 0) {
const data = await file.arrayBuffer();
const buffer = Buffer.from(data);
- const filePath = resolve(
+ filePath = resolve(
process.cwd(),
"./public/uploads",
`${crypto.randomUUID()}.${file.name.split(".").pop()}`,
@@ -16,4 +17,6 @@ export async function uploadFile(formData: FormData) {
await fs.writeFile(filePath, buffer);
}
revalidatePath("/file");
+
+ return filePath;
}
\ No newline at end of file
diff --git a/src/app/page.tsx b/src/app/page.tsx
@@ -17,13 +17,12 @@ import MuiAppBar, { AppBarProps as MuiAppBarProps } from '@mui/material/AppBar';
import IconButton from '@mui/material/IconButton';
import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';
import ChevronRightIcon from '@mui/icons-material/ChevronRight';
-import UploadForm from './fileUploadForm';
import HomeIcon from '@mui/icons-material/Home';
import ImageSearchIcon from '@mui/icons-material/ImageSearch';
import HelpIcon from '@mui/icons-material/Help';
import { Button, Icon, Input, Link, TextField } from '@mui/material';
import ChatIcon from '@mui/icons-material/Chat';
-import { uploadFile } from './fileUploader';
+import { fileUploader } from './fileUploader';
const menuList = [['Home',<HomeIcon/>],['IndexFiles',<ImageSearchIcon/>],['Pim Mattermost',<ChatIcon/>],['How to Use',<HelpIcon/>]];
@@ -34,8 +33,7 @@ const darkTheme = createTheme({
});
const drawerWidth = 240;
-let imageLink = 'download/c5fdf674-4dde-4a2c-8549-4c6d811f2fbc.pdf';
-
+let imageLink: Promise<string> = Promise.resolve('download/c5fdf674-4dde-4a2c-8549-4c6d811f2fbc.pdf');
const Main = styled('main', { shouldForwardProp: (prop) => prop !== 'open' })<{
open?: boolean;
@@ -161,7 +159,7 @@ export default function Home() {
<p>Files posted here will be deleted after a set period of time.</p>
</div>
<Box>
- <form action={uploadFile}>
+ <form action={imageLink = fileUploader}>
<Input type="file" name="file" sx={{marginRight:'10px'}}/>
<Button type="submit" variant="contained" size="small">アップロード</Button>
</form>