提示信息

Python文件上传功能实现

韦鑫杰 已关注

在实现Python文件上传功能时,通常会使用一个Web框架来处理HTTP请求和文件上传。其中一个流行的框架是Flask。下面是一个使用Flask框架实现简单文件上传功能的示例:

安装Flask

首先,确保你已经安装了Flask。你可以使用pip来安装它:

  1. pip install Flask

创建项目结构

创建一个新的目录用于你的Flask应用程序,并在其中创建一个Python文件(例如app.py)和一个用于存储上传文件的目录(例如uploads)。项目结构如下:

  1. /file-upload-example
  2. /uploads
  3. app.py

编写Flask应用

下面是在app.py中实现文件上传的基本代码:

  1. from flask import Flask, request, redirect, url_for, render_template
  2. import os
  3. app = Flask(__name__)
  4. app.config['UPLOAD_FOLDER'] = 'uploads'
  5. app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 # 限制文件大小为16MB
  6. # 确保上传目录存在
  7. os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
  8. @app.route('/')
  9. def index():
  10. return render_template('index.html')
  11. @app.route('/upload', methods=['POST'])
  12. def upload_file():
  13. if 'file' not in request.files:
  14. return "No file part", 400
  15. file = request.files['file']
  16. if file.filename == '':
  17. return "No selected file", 400
  18. if file:
  19. file_path = os.path.join(app.config['UPLOAD_FOLDER'], file.filename)
  20. file.save(file_path)
  21. return f'File successfully uploaded: {file.filename}'
  22. if __name__ == '__main__':
  23. app.run(debug=True)

创建上传表单

在项目目录中,创建一个名为templates的子目录,并在其中创建index.html文件。文件内容如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>File Upload</title>
  6. </head>
  7. <body>
  8. <h1>Upload a file</h1>
  9. <form action="/upload" method="post" enctype="multipart/form-data">
  10. <input type="file" name="file"><br><br>
  11. <input type="submit" value="Upload">
  12. </form>
  13. </body>
  14. </html>

运行应用

确保你在终端中处于项目目录内,然后运行Flask应用:

  1. python app.py

应用启动后,访问http://127.0.0.1:5000,你将看到文件上传表单。选择一个文件并点击“Upload”按钮进行上传。

完成

你现在已经实现了一个基本的文件上传功能。当你上传文件后,它们将被保存到uploads目录中,并在成功上传后返回一个确认消息。

这只是文件上传的基础实现,你可以根据需要进行扩展,例如添加文件类型验证、安全性增强或文件的后续处理逻辑。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
韦鑫杰 关注 已关注

最近一次登录:2024-11-20 10:44:23   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图