在我简单的烧瓶学习实验中,我创建了一个包含用户名,电子邮件和文件上传的表单。此文件将邮寄给其他用户[基本上是一个excel表]
我的脚本工作正常,直到文件位置识别的最后一部分。现在我已经阅读了文件系统安全性的文档,论坛和API,并且一直在尝试使用request.files ['file']和enctype =“multipart / form-data”
我的PageView.html:
{% block content %}
<form class="form" action="" method="post" name="DeployerC1" enctype="multipart/form-data">
..
..
<thead>
<tr>
<td class="text-left"><strong>Username</strong></td>
<td class="text-left"><strong>Email</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td>{{Users.Userame}}</td>
<td>{{Users.Email}}</td>
</tr>
<input type="file" name=file>
<p class="help-block">Location of monthly report.</p>
。 .. 在views.py
中@app.route('/Sendit', methods=['GET','POST'])
def Sendit():
..
.
if request.method == 'POST':
.
...
.....
CredDict = {'Username':Username,'Email':Email}
for element in FinalList:
element.update(CredDict)
file = request.files['file']
print file
return redirect(url_for('Processed'))
return render_template('blah.ah.blah')
现在,我面临的问题是,如果我使用enctype,那么当我点击Submit或Next时,我会得到ERR_ACCESS_DENIED。
如果没有enctype,下一页进展顺利,但只显示带有警告的文件名,我应该使用enctype。要访问filecontents [基本上存储在tmp中],我尝试使用request.files ['file'],但最终得到了ERR_ACCESS_DEINED。
我能想到的解决方法是使用单独的装饰文件和单独的html文件上传,但是,我不想这样做。 是否可以将用户名/电子邮件输入与文件输入一起使用,并使用request.files进行下一次提交?
以下是我计划用于将文件保存到tmp位置的代码部分
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
任何指示都会有所帮助。
非常感谢..