Next.js 文件上传
介绍
在现代 Web 应用中,文件上传是一个常见的功能需求。无论是用户上传头像、文档,还是其他类型的文件,文件上传功能都是不可或缺的。Next.js 作为一个全栈框架,提供了强大的工具来处理文件上传。本文将带你从零开始,学习如何在 Next.js 中实现文件上传功能。
基础概念
在开始编写代码之前,我们需要了解一些基础概念:
- 文件上传流程:用户通过表单选择文件,前端将文件发送到服务器,服务器接收并处理文件。
- 文件类型:常见的文件类型包括图片、文档、视频等。
- 文件大小限制:通常需要对上传的文件大小进行限制,以防止服务器资源被过度占用。
实现步骤
1. 创建文件上传表单
首先,我们需要在前端创建一个表单,允许用户选择文件并上传。以下是一个简单的文件上传表单示例:
import { useState } from 'react';
export default function FileUploadForm() {
const [file, setFile] = useState(null);
const handleFileChange = (e) => {
setFile(e.target.files[0]);
};
const handleSubmit = async (e) => {
e.preventDefault();
if (!file) return;
const formData = new FormData();
formData.append('file', file);
const response = await fetch('/api/upload', {
method: 'POST',
body: formData,
});
if (response.ok) {
alert('文件上传成功!');
} else {
alert('文件上传失败!');
}
};
return (
<form onSubmit={handleSubmit}>
<input type="file" onChange={handleFileChange} />
<button type="submit">上传</button>
</form>
);
}