Python处理HTTP请求中的文件上传

139 阅读1分钟

微信图片_20230808094553.png在Web开发中,处理HTTP请求中的文件上传是一个常见的需求。当用户需要通过Web表单上传文件(如图片、文档等)时,服务器端需要能够接收并处理这些文件。在Python中,有多种方式可以实现这一功能,其中最常见的是使用Web框架(如Flask、Django等)来处理文件上传。

然后,创建一个简单的Flask应用来接收文件上传:

python复制代码

 from flask import Flask, request, render_template, send_from_directory
 import os
  
 app = Flask(name)
 UPLOAD_FOLDER = 'uploads/' 
 app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
  
 # 确保上传文件夹存在
 if not os.path.exists(app.config['UPLOAD_FOLDER']):
 os.makedirs(app.config['UPLOAD_FOLDER'])
  
 @app.route('/upload', methods=['GET', 'POST'])
 def upload_file():
 if request.method == 'POST' and 'file' in request.files:
 file = request.files['file']
  
 # 如果用户没有选择文件,浏览器也会提交一个空的文件部分没有文件名
 if file.filename == '':
 return 'No selected file', 400 
  
 if file:
 filename = secure_filename(file.filename) # 使用Flask的secure_filename来避免潜在的安全问题
 file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))

此外,我们还需要一个HTML表单来允许用户选择并上传文件。这个表单的action属性应该设置为/upload,并且应该包含一个类型为file的元素来接收用户选择的文件。当用户提交表单时,浏览器会发送一个包含文件的POST请求到服务器。