Python文件上传功能实现
在实现Python文件上传功能时,通常会使用一个Web框架来处理HTTP请求和文件上传。其中一个流行的框架是Flask。下面是一个使用Flask框架实现简单文件上传功能的示例:
安装Flask
首先,确保你已经安装了Flask。你可以使用pip来安装它:
pip install Flask
创建项目结构
创建一个新的目录用于你的Flask应用程序,并在其中创建一个Python文件(例如app.py
)和一个用于存储上传文件的目录(例如uploads
)。项目结构如下:
/file-upload-example
/uploads
app.py
编写Flask应用
下面是在app.py
中实现文件上传的基本代码:
from flask import Flask, request, redirect, url_for, render_template
import os
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = 'uploads'
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 # 限制文件大小为16MB
# 确保上传目录存在
os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/upload', methods=['POST'])
def upload_file():
if 'file' not in request.files:
return "No file part", 400
file = request.files['file']
if file.filename == '':
return "No selected file", 400
if file:
file_path = os.path.join(app.config['UPLOAD_FOLDER'], file.filename)
file.save(file_path)
return f'File successfully uploaded: {file.filename}'
if __name__ == '__main__':
app.run(debug=True)
创建上传表单
在项目目录中,创建一个名为templates
的子目录,并在其中创建index.html
文件。文件内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>File Upload</title>
</head>
<body>
<h1>Upload a file</h1>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br><br>
<input type="submit" value="Upload">
</form>
</body>
</html>
运行应用
确保你在终端中处于项目目录内,然后运行Flask应用:
python app.py
应用启动后,访问http://127.0.0.1:5000
,你将看到文件上传表单。选择一个文件并点击“Upload”按钮进行上传。
完成
你现在已经实现了一个基本的文件上传功能。当你上传文件后,它们将被保存到uploads
目录中,并在成功上传后返回一个确认消息。
这只是文件上传的基础实现,你可以根据需要进行扩展,例如添加文件类型验证、安全性增强或文件的后续处理逻辑。