В Next.js, фреймворке для разработки React приложений, пересобираемых на стороне сервера, отправка файлов на сервер с указанием пути сохранения может быть реализована с использованием различных подходов.
Один из подходов предполагает использование модуля fs
(file system) из стандартной библиотеки Node.js для чтения и записи файлов на сервере. Для начала вам потребуется импортировать модуль в вашем Next.js приложении:
const fs = require('fs');
Затем, вы можете обрабатывать запросы на загрузку файлов с помощью API маршрутов Next.js. Для этого вам следует создать директорию pages/api
, а затем создать файл upload.js
(или любое другое имя на ваше усмотрение).
Далее, внутри этого файла можно использовать модуль fs
для работы с файлами. Вот пример обработчика загрузки файла, который сохраняет загруженный файл в указанном пути:
import fs from 'fs'; import formidable from 'formidable'; export const config = { api: { bodyParser: false, }, }; export default function handler(req, res) { const form = new formidable.IncomingForm(); form.parse(req, (err, fields, files) => { if (err) { console.error(err); res.status(500).json({ error: 'Failed to upload file' }); return; } const tempPath = files.file.path; const newPath = `/path/to/save/file/${files.file.name}`; fs.rename(tempPath, newPath, (err) => { if (err) { console.error(err); res.status(500).json({ error: 'Failed to save file' }); return; } res.status(200).json({ message: 'File uploaded successfully' }); }); }); }
В этом примере используется пакет formidable
для обработки мультипартных (multipart) запросов на загрузку файлов. Загруженный файл сохраняется с помощью метода fs.rename()
, который переименовывает файл из временной директории в указанный путь.
Также, не забудьте указать api
в поле config
для API маршрута, чтобы Next.js корректно обработал этот файл-обработчик.
Обратите внимание, что вам необходимо указать корректный путь (/path/to/save/file/
) для сохранения файлов на вашем сервере.