formfile文件上传使用示例


以下是一个使用Python的Flask框架来实现文件上传的简单示例。这个示例展示了如何创建一个简单的web应用,该应用允许用户上传文件。请注意,这个示例假设你已经安装了Flask库。


from flask import Flask, request, redirect, url_for, flash
import os

app = Flask(__name__)
app.secret_key = 'your_secret_key'  # 用于闪现消息

# 确保上传文件夹存在
UPLOAD_FOLDER = 'uploads/'
if not os.path.exists(UPLOAD_FOLDER):
    os.makedirs(UPLOAD_FOLDER)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

@app.route('/')
def form():
    return '''
    <!doctype html>
    <title>Upload new File</title>
    <h1>Upload new File</h1>
    <form action="/uploader" method=post enctype=multipart/form-data>
      <input type=file name=file>
      <input type=submit value=Upload>
    </form>
    '''

@app.route('/uploader', methods=['POST'])
def upload_file():
    if 'file' not in request.files:
        flash('No file part')
        return redirect(request.url)
    file = request.files['file']
    if file.filename == '':
        flash('No selected file')
        return redirect(request.url)
    if file:
        filename = file.filename
        filepath = os.path.join(app.config['UPLOAD_FOLDER'], filename)
        file.save(filepath)
        return f'File {filename} uploaded successfully'

if __name__ == '__main__':
    app.run(debug=True)

这个示例包含了一个简单的HTML表单,用于上传文件,以及处理文件上传的Flask视图函数。上传的文件会被保存到服务器上的`uploads/`文件夹中。请确保在部署此应用时,已经创建了`uploads/`文件夹,并且Flask应用有足够的权限来写入文件。

请注意,为了安全起见,在生产环境中,你可能需要添加更多的验证和错误处理来确保上传的文件类型和大小是符合预期的。此外,处理用户上传的文件时,始终要小心,以避免安全风险,如路径遍历攻击等。