我试图通过表单的post请求将音频文件发送到服务器端。
我试图按照Remix文档here上的说明将unstable_parseMultipartFormData与multipart/form-data Form结合使用,但我得到了这个错误:TypeError:uploadHandler 2不是parseMultipartFormData的函数
我试图使用这个文件在服务器端内的行动。
export const action = async ({ request, context }) => {
const formData = await unstable_parseMultipartFormData(
request,
uploadHandler
);
return ''
};
export default function Index() {
const submit = useSubmit()
const [formData, setFormData] = useState({
audioFile: '',
});
const handleFileChange = (event) => {
setFormData({ audioFile: event.target.files[0] });
};
const handleSubmit = async (e) => {
e.preventDefault();
submit(formData, { method: "post" });
};
return (
<>
<section>
<Form encType="multipart/form-data" method="POST" >
<input
id="fileUpload"
name="audioFile"
type="file"
accept=".mp3,.m4a"
// onChange={handleFileChange}
className="bg-neutral-600 text-white px-4 py-2 rounded-lg mb-4 w-full text-sm"
/>
<button className="text-white border border-white p-2 rounded-md text-sm" type="submit">Send</button>
</Form>
</section>
</>
);
}
非常感谢您的帮助。
谢谢你。
1条答案
按热度按时间beq87vna1#
要上传文件,需要设置
<Form encType>
:然后用uploadHandler创建一个action:
https://remix.run/docs/en/1.16.1/utils/parse-multipart-form-data