python-3.x - Flask,无法使用 request.files 获取文件部分
问题描述
这是我的 HTML:
{% extends "layout.html" %}
{% block title %}
Picture
{% endblock %}
{% block main %}
<form action="/picture" method="post">
<div>
<p>Profile picture (32mb max).</p>
<input type="file" id="picture" name="picture" enctype="multipart/form-data">
<input type="submit" value="Upload">
</div>
</form>
{% endblock %}
这是 .py :
import sqlite3
import traceback
import sys
import os
from flask import Blueprint, render_template, redirect, session, request, flash
from application import profileName, uploadPicture, profilePicture, allowed_file
from werkzeug.utils import secure_filename
# Set Blueprints
picture = Blueprint('picture', __name__,)
@picture.route("/picture", methods=["GET", "POST"])
def pictureFunction():
if request.method == "POST":
# check if the post request has the file part
if "picture" not in request.files:
flash("No file part")
return redirect("/picture")
file = request.files["picture"].read()
# if user does not select file, browser also submit a empty part without filename
if file.filename == "":
flash("No selected file")
return redirect("/picture")
# Check if all conditions are satisfied
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join("/static", filename))
return print(filename)
当我尝试上传 .jpg(允许的文件)时,我总是会得到:第一个“if”的“No file part”。
我不明白为什么。有人可以帮我弄清楚为什么我不能上传这个文件吗?
解决方案
该enctype
属性应该是<form>
标签的一部分,而不是您的文件<input>
:
所以改为执行以下操作:
<form action="/picture" method="post" enctype="multipart/form-data">
<div>
<p>Profile picture (32mb max).</p>
<input type="file" id="picture" name="picture">
<input type="submit" value="Upload">
</div>
</form>
推荐阅读
- python - 模块“importlib”没有属性“util”
- ios - 当单元格快速展开时加载 .xib 文件
- node.js - 如何将图像从客户端发送到服务器节点 js 反应
- flutter - 如何在颤动中从在线加载文件
- java - 在 BarGraph MPAndroidChart 中重叠两个条形图
- python - 使用 Python 在图像上绘制从 Unity 获取的坐标
- git - 如何通过删除 git 中的其他更改(即使在远程)来保持 Head 中的更改?
- html - 如何使用 html、css 和 bootstrap 摆脱垂直和水平滚动条
- flutter - setState 与 StreamProvider
- angular - 我必须在哪个文件中将 serviceWorker 注销代码放入角度 ssr?