文件上传的基本原理实际上很简单,基本上是:
从最基本的功能开始,这个应用上传文件到一个指定目录,并把文件显示给用户。
以下是应用的部分代码:
import os
from flask import Flask, flash, request, redirect, url_for
from werkzeug.utils import secure_filename
UPLOAD_FOLDER = '/path/to/the/uploads'
ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'}
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
UPLOAD_FOLDER 是上传文 件要储存的目录, ALLOWED_EXTENSIONS 是允许上传的文件扩展名的集合。
为什么要限制文件件的扩展名呢?如果直接向客户端发送数据,那么你可能不会想让 用户上传任意文件。否则,你必须确保用户不能上传 HTML 文件,因为 HTML 可能引 起 XSS 问题(参见 跨站脚本攻击(XSS) )。如果服务器可以执行 PHP 文件,那么还