Создать api загружаемых файлов в next.js
Можно ли создать api загрузки файла в next.js? (с 9X_nextjs использованием каталога / api) Или я должен 9X_nextjs использовать внешнюю стороннюю службу в 9X_nextjs Интернете? Не могу найти ни одного примера 9X_nextjs в Интернете. Спасибо
Ответ #1
Ответ на вопрос: Создать api загружаемых файлов в next.js
Вы можете загружать файлы с помощью маршрутов 9X_nextjs API Next.js.
Пример синтаксического анализа тела Next.js по умолчанию
Обработчик API
export default (req, res) => {
// req.body contains a content of an uploaded file + headers
}
req.body
- это string
, который в начале содержит 9X_nextjs связанные заголовки HTTP, например
------WebKitFormBoundarydj2uhBXPZtD3nte3
Content-Disposition: form-data; name="your_input_name"; filename="your_file_name.json"
Content-Type: application/json
your file content is here!
Итак, вам 9X_next.js нужно извлечь из него содержимое. Наверное, есть 9X_nextjs какие-то пакеты, которые это умеют.
Кроме 9X_nextjs того, вы можете проанализировать запрос 9X_next.js с помощью стороннего пакета.
Пример с formidable
Обработчик API
import { IncomingForm } from 'formidable'
// you might want to use regular 'fs' and not a promise one
import { promises as fs } from 'fs'
// first we need to disable the default body parser
export const config = {
api: {
bodyParser: false,
}
};
export default async (req, res) => {
// parse form with a Promise wrapper
const data = await new Promise((resolve, reject) => {
const form = new IncomingForm()
form.parse(req, (err, fields, files) => {
if (err) return reject(err)
resolve({ fields, files })
})
})
// read file from the temporary path
const contents = await fs.readFile(data?.files?.nameOfTheInput.path, {
encoding: 'utf8',
})
// contents is a string with the content of uploaded file, so you can read it or store
}
Используйте 9X_next.js приведенные выше примеры только для иллюстрации. По 9X_next.js крайней мере, нужно обернуть его в оператор 9X_next.js try catch
с надлежащей обработкой ошибок.
- Отключение парсера тела по умо ...
-
6
-
3
-
10
-
8
-
6
-
2
-
5
-
2
-
3
-
6
-
3
-
3
-
4
-
5
-
5
-
3
-
3
-
7
-
2
-
1
-
1
-
2
-
1
-
3
-
1
-
2
-
2
-
7
-
15
-
12
-
2
-
3
-
2
-
5
-
1
-
1
-
3
-
5
-
4
-
7
-
9
-
4
-
2
-
2
-
1
-
1
-
2
-
4
-
8
-
6