我在 html/php 中创建了一个表单,并使用烧瓶作为后端。
一切正常,除了当我尝试上传图片时,我总是看到错误:
error is**"UnboundLocalError: local variable 'filename' referenced before assignment"**
我的flaskapp代码片段是
@app.route('/apple', methods=['GET', 'POST'])
def apple():
onlineAppForm = RegForm()
if request.method == 'POST':
try:
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
except Exception as e:
print "Form without file "+str(e)
return render_template("apply2.html", data=data, filename=filename, form=onlineAppForm)
这是我的上传文件夹
UPLOAD_FOLDER = 'static/uploads'
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
app.secret_key = os.urandom(24)
我没有得到错误在哪里。
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS
这是我的表格
<tr>
<td class="sectionheading">Upload Scanned Copies</td>
</tr>
<tr>
<td height="12"> </td>
</tr>
<tr id="photosignthumb_span" height="40">
<td align="left" valign="middle" width="100%"> <b>
<span class="mandatory">*</span>
Please upload scanned copies of your photo </b>
<input type="file" name="photo" id="photofile"
method="post"/><br>
Please upload your recent passport size photograph:max
80KB(Only JPEG and JPG formats)
</td>
</tr>
<tr id="photosignthumb_span" height="40">
<td align="left" valign="middle" width="100%"> <b>
<span class="mandatory">*</span>
Please upload scanned copies of your signature </b>
<input type="file" name="sign" id="signfile"
method="post"/><br>
Please upload your recent passport size photograph:max
80KB(Only JPEG and JPG formats)
</td>
</tr>