【问题标题】:No such file or directory: /uploads [duplicate]没有这样的文件或目录:/uploads [重复]
【发布时间】:2016-03-15 15:37:08
【问题描述】:

我查看了其他几个问题,但无法弄清楚出了什么问题。我收到以下错误:“FileNotFoundError:[Errno 2] 没有这样的文件或目录:'/uploads\MRRtest.csv'”有人可以帮忙吗?错误信息中的正斜杠和反斜杠有什么区别?

谢谢

from flask import Flask, render_template, request, redirect, url_for, flash
from flask.ext.bootstrap import Bootstrap
from werkzeug import secure_filename
import os


app = Flask(__name__)
bootstrap = Bootstrap(app)
UPLOAD_FOLDER = '/uploads'
ALLOWED_EXTENSIONS = set(['csv'])
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER



def allowed_file(filename):
    return '.' in filename and \
           filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        file = request.files['file']
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'],filename))
            return redirect(url_for('uploaded_file', filename=filename))
    return render_template('index.html')

我的 index.html 模板如下:

{% extends "base.html" %}

{% block title %}Flasky{% endblock %}

{% block page_content %}
<div class="page-header">
    <h1>Upload File</h1>
    <form action="" method=post enctype=multipart/form-data>
      <p><input type=file name=file>
         <input type=submit value=Upload>
    </form>
</div>
{% endblock %}

【问题讨论】:

  • 您使用的是什么操作系统?这也是你的完整代码吗? MRRtest 这个名字是怎么来的?
  • 我使用的是 Windows 10 和 python 3。我的视图有一个索引 html 文件,MRRtest.csv 是我使用该文件上传的文件
  • 刚刚意识到索引文件在模板中,而我的“上传”目录与 run.py 文件位于同一目录中。因此,我将 UPLOAD FOLDER = 更改为 './uploads"

标签: python flask upload


【解决方案1】:

/uploads 表示绝对链接(C:/upload),所以你应该改用upload/。

另外,你可以使用来自https://stackoverflow.com/a/20257725/5851179的nice sn-p

APP_ROOT = os.path.dirname(os.path.abspath(__file__))
UPLOAD_FOLDER = os.path.join(APP_ROOT, 'static/uploads')
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

【讨论】:

    【解决方案2】:

    刚刚从 cmets 中了解到,我的上传目录与我的 run.py 文件位于同一目录中,而不是运行 index.html 的“模板”目录。我修改了

    UPLOAD_FOLDER = '/uploads'
    

    到

    UPLOAD_FOLDER = './uploads'
    

    我现在将致力于构建“端点网址”

    感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 2019-12-23
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 2021-07-10
      • 2018-04-13
      相关资源
      最近更新 更多