我正在尝试使用python / Flask读取文件,并在单击按钮时显示它。要查看文件,这样的返回函数可以正常工作:
return redirect(url_for('uploaded_file',filename=filename))
但我试图在HTML中实现一键查看文件。像这样:
<form><input action="redirect(url_for etc. ??)" type=submit value=viewFile> </form>
action
的正确语法是什么?
谢谢你的任何提示。
答案 0 :(得分:1)
动作属性应该在<form>
上,而不是<input>
。 action的值应该只是接受文件的路由的URL。假设你正在使用Jinja2,就像这样:
的Jinja2:
<form action="{{url_for('upload')}}" enctype="multipart/form-data">
<input type="file" name="view_file">
<input type="submit" value="Upload">
</form>
的Python:
@app.route('/upload', methods=['POST'])
def upload():
# Handle upload and save to disk here..
return redirect(url_for('uploaded_file', filename=filename))
@app.route('/uploads/<filename>')
def uploaded_file(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
另见http://flask.pocoo.org/docs/0.11/patterns/fileuploads/(看起来你已经在那个例子中工作了......)
答案 1 :(得分:0)
这段代码让我把文件名传递给html表单输入。
蟒:
...
return render_template('view.html', cat = filename)
html(view.html):
<!doctype html>
<form action="{{url_for('uploaded_file', filename=cat)}}" enctype="multipart/form-data">
<input type=submit value='view file'>
</form>