javascript - Javascript 上传 excel 文件 (XLS/XLSX)
问题描述
我正在尝试将 Excel 电子表格上传到我的 React 应用程序中。我不需要阅读或编辑任何内容,只需将其上传到云存储位置。我已经尝试使用标准<input type="file" />
和react-dropzone
来获取文件(它确实如此),但是,一旦我尝试使用axios
发送的文件将文件传输到后端,就会返回为undefined
. 这是我的代码:
上传器前端
import React, { useState, useContext } from 'react';
import FileContext from '../../context/file/fileContext';
const Uploader = () => {
const fileContext = useContext(FileContext);
const { uploadFile } = fileContext;
const [file, setFile] = useState('');
const onChange = (e) => {
setFile(e.target.files[0]);
};
const onSubmit = async (e) => {
e.preventDefault();
const formData = new FormData();
formData.append('file', e.target.files[0]);
uploadFile(formData);
};
return (
<div className="container">
<div className="row">
<form className="col s12" onSubmit={onSubmit}>
<div className="row">
<div className="col s12">
<h4>Upload PO file</h4>
</div>
<div className="input-field col s12">
<label className="active" htmlFor="xlsFile">
Choose an XLS/XLSX file to upload...
</label>
<input
type="file"
name="xlsFile"
id="xlsFile"
accept=".xls, .xlsx"
onChange={onChange}
/>
</div>
<div className="col s12">
<button className="btn btn-primary">Upload</button>
</div>
</div>
</form>
</div>
</div>
);
};
export default Uploader;
uploadFile()
功能
const uploadFile = async (formData) => {
const uploaded = await axios.post('/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
});
};
用于文件上传的路由器 POST
router.post('/upload', async (req, res) => {
const { file } = req.files;
console.log(file);
});
解决方案
推荐阅读
- javascript - 迭代子组件并渲染每个包裹在更高阶组件中
- node.js - 如何在 nodejs 中管理负载平衡架构上的会话?
- r - R - 应用函数不适用于附加参数中心和比例的比例函数
- java - 使用一个套接字发送/接收消息
- mysql - MYSQL 中 POINT 和 GEOMETRYCOLLECTION 对象之间的距离
- r - Surv 函数输入 - 右、左或间隔删失?在 R 中
- rust - 编译器是否有某种顺序运行?
- php - 页面 404 未找到,但直到几次前才工作
- r - testhat - 如何存储预期结果?
- python - 我想从不同的python3脚本在python脚本中添加一个变量,该变量将充当全局变量或该变量的一个访问点