首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >file.save()不会将上传的文件保存在服务器上- Flask、HTTP Request、Python

file.save()不会将上传的文件保存在服务器上- Flask、HTTP Request、Python
EN

Stack Overflow用户
提问于 2021-03-31 22:47:38
回答 2查看 298关注 0票数 1

我正在开发一个后端与python和一个HTTP请求上传文件的API。上传并提交后,文件应该出现在FLASK文件夹中,但它们没有。哪里是我的错??

代码语言:javascript
运行
复制
from flask import Flask, url_for, request, redirect
from werkzeug.utils import secure_filename
import os


folder = "/Documents/Coding/Flask"
extensions = set(['txt', 'jpg', 'png', 'pdf'])
app = Flask(__name__)


def allowed(filename):
    return '.' in filename and filename.rsplit('.', 1)[1].lower() in extensions


@app.route("/", methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        if 'file' not in request.files:
            return redirect(request.url)
        file = request.files['file']
        if file.filename == '':
            return redirect(request.url)
        if allowed(file.filename):
            filename = secure_filename(file.filename)
            file.save(os.path.join(folder, filename))
            return redirect(request.url)

    return '''
        <h1>Upload</h1>
        <form method="post" enctpye="multipart/form-data">
        <input type="file" name="file">
        <input type="submit" name="Upload">
    '''
EN

回答 2

Stack Overflow用户

发布于 2021-03-31 23:06:15

将您的folder变量更改为:

代码语言:javascript
运行
复制
folder = os.path.join(app.instance_path, 'uploads') # Assigns upload path to variable
os.makedirs(folder, exists_ok=True) # Creates the directory,

并将您的file.save更改为:

代码语言:javascript
运行
复制
file.save(os.path.join(folder, secure_filename(file.name)))

我想这会解决你的问题。

票数 1
EN

Stack Overflow用户

发布于 2021-03-31 23:04:56

检查是否达到"if allowed(file.filename):“语句。有可能请求在此之前结束。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66890114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档