gpt4 book ai didi

javascript - Flask request.get.args - 缺少一个参数

转载 作者:行者123 更新时间:2023-11-30 20:31:18 24 4
gpt4 key购买 nike

我正在从我的网站发送带有一些 FormData 的 POST 请求:

  var formData = new FormData();
formData.append('file',file);
formData.append('timestamp', window.performance.now())
console.log(formData)
console.log(window.performance.now())
var xhr = new XMLHttpRequest();
xhr.addEventListener("load", () => {
console.log("asdf");
});
xhr.open("POST", "http://flaskmin.run.aws-usw02-pr.ice.predix.io/receivedoc");
xhr.send(formData);

在哪里file是一个实际的 Excel 文件。

我正在使用 Flask 服务器处理它:

@app.route('/receivedoc', methods=['POST', 'GET', 'OPTIONS'])
@crossdomain(origin='*')
def upload_file():
if request.method == 'POST':
print(request.files)
print("Timestamp" + request.args.get('timestamp'))
if 'file' not in request.files:
flash('No file part')
return redirect(request.url)
file = request.files['file']
#Do stuff with the file

奇怪的是,服务器确实收到了文件,但没有收到时间戳。当我尝试打印它时,出现错误 TypeError: must be str, not NoneType .当我做 console.log(window.performance.now())在网站上,我确实在 Chrome 开发工具控制台上看到了时间,但它不会到达 Flask 服务器,保持 None .我错过了什么?我试过了 formData.append('timestamp', String(window.performance.now())) ,也没有帮助。

更新

所以我添加了一些日志记录,并且发生了一些奇怪的事情。我在做:

   fileUpload: function(file) {
console.log("fileUpload function called")
var formData = new FormData();
formData.append('file',file);
formData.append('t_stamp123', 'test123')
console.log(formData)
console.log(formData.files)
console.log(formData.file)
console.log(file)
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://localhost:7733/receivedoc");
xhr.send(formData);
var xhr1 = new XMLHttpRequest();

这通过以下方式调用:

  self.fileUpload(uploadComponentId.files[0])

uploadComponentId是一种 <form>元素。所以奇怪的是我的这个节目的控制台:

fileUpload function called
pacing-view.html:60 FormData {}
pacing-view.html:61 undefined
pacing-view.html:62 undefined
pacing-view.html:63 File(114688) {name: "GL_Details_03212018_094512.xls", lastModified: 1521640039000, lastModifiedDate: Wed Mar 21 2018 14:47:19 GMT+0100 (CET), webkitRelativePath: "", size: 114688, …}

然而,服务器确实获取了文件并且我可以将它写入磁盘(我现在在本地主机上运行所有内容)!!!尽管formData似乎是空的,文件通过服务器,但时间戳不是?哇。

更新 2

当我删除 formData.append('file',file); 时行,文件确实被发送到服务器,我得到一个 UnboundLocalError: local variable 'filename' referenced before assignment .所以我绝对不会在代码中的其他地方发送文件,它必须是 formData .

最佳答案

好的,原来 request 中的 FormData 可以被 request.form['timestamp'] 访问,它没有存储为参数

关于javascript - Flask request.get.args - 缺少一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50309875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com