我通过Ajax通过相同的功能同时上传了两组文件,我们称之为
1-设置A
,一次只能上传一个文件。 -网址:/upload1
2-设置B
,每个请求包含多个文件。 -网址:/upload2
A = {id=id , file1=file1 }
B = {id=id , file2=file2 }
然后我也准备好上传集合B
的名称列表
在不同的上传功能中,每组文件的上传情况都很好
当我尝试将它们提交到数据库时会出现问题,因为每个函数期望3个值,而我仅提供2个唯一的解决方法,就像这样
class Files(db.Model):
id = db.Column(db.Integer, primary_key=True)
code = db.Column(db.String(255))
file1 = db.Column(db.String(255))
file2 = db.Column(db.String(255))
def __init__(self,id,code,file1,file2):
self.id = id
self.code = code
self.file1 = file1
self.file2 = file2
@app.route("/upload1" ,methods = ["POST"] )
def upload1():
importedFiles = request.files.to_dict();
for file in importedFiles:
file1 = importedFiles[file].filename
file2 = ""
addFiles = Files(id=id ,file1=file1 ,file2=file2 )
db.session.add(addFiles)
db.session.commit()
return '', 204
@app.route("/upload2" ,methods = ["POST"] )
def upload2():
importedFiles = request.files.to_dict();
for file in importedFiles:
file2 = importedFiles[file].filename
file1 = ""
addFiles = Files(id=id ,file1=file1 ,file2=file2 )
db.session.add(addFiles)
db.session.commit()
return '', 204
所以我不得不提到该混乱变量,并给它一个值fileX = ""
,每次运行这些函数时,它们都会互相覆盖。
因此最终结果应该具有file1
和file2
的值,我该如何在 覆盖 之间互不影响> 数据库 ?
是否可以将这两组文件请求发送到相同的网址,并运行某种if语句来定义哪个 >? -我在 Ajax
之前使用过FormData.append('file', FileData, FileName)
方法
(这将解决我的问题,因为我可以将两个值存储在两个不同的变量中,并在同一提交请求中将它们一起提交)