【发布时间】:2021-07-09 14:52:06
【问题描述】:
正如标题所说,我有一个允许用户上传文件的客户端页面,它们将始终是 .csv 文件。
export const sendFiles = async (files) => {
let form = new FormData();
form.append("arrFile", files);
await axios
.post(local + "/read-files", form, {
headers: { "Content-Type": "multipart/form-data" },
})
.then((res) => {
return res.data;
})
.catch((err) => {
return err;
});
};
这是我使用 FormData 发送文件的代码。 files 是 File 对象的数组。它可以只有一个或多个。控制台上的files 数组如下所示
Array [ File ]
0: File { name: "filename.csv", lastModified: 1624560497968, size: 1244, … }
lastModified: 1624560497968
name: "filename.csv"
size: 1244
type: "application/vnd.ms-excel"
webkitRelativePath: ""
<prototype>: FilePrototype { name: Getter, lastModified: Getter, webkitRelativePath: Getter, … }
length: 1
<prototype>: Array []
我将把它发送到我的 Python Flask 服务器
@app.route("/read-files", methods=['POST'])
def read_files():
if request.method == 'POST':
form = dict(request.form)
return
我发现 FormData 存储在 request.form 中,但是当我在 Python 上打印此数据时,它显示为这样。
{'arrFile': '[object File],[object File],[object File],[object File],[object File],[object File],[object File]'}
这些文件似乎位于以逗号分隔的字符串中。我想做的是能够存储这些文件及其内容,然后能够读取它们。这可能吗?
【问题讨论】:
标签: javascript python file python-requests axios