【问题标题】:Link uploaded files on a list将上传的文件链接到列表中
【发布时间】:2016-09-08 00:36:40
【问题描述】:

我正在开发一个简单的文件服务器,您可以在其中上传文件,这些文件会转到数据库和上传文件夹。现在,它只需要一个链接文件列表。

现在我有这个:

@app.route('/uploads/<filename>')
def uploaded_file(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'],
                               filename)

上传的文件在上传后立即显示。这就是我需要这些链接的原因。

【问题讨论】:

  • 你能澄清你问的是什么吗?您尝试了哪些方法,结果又是什么?
  • 我已经能够使用 Flask 上传文件,我有一个上传文件夹。使用 send_from_directory 方法,我只能在文件上传后立即看到,所以我需要创建一个带有链接的列表,每个链接应该是一个上传的文件;像 Dropbox。
  • 所以只需要列出上传目录下的所有文件?
  • 是的,每一个链接

标签: python python-2.7 file-upload flask flask-sqlalchemy


【解决方案1】:
from os import listdir
from os.path import isfile, join, abspath, dirname

@app.route('/files')
def files():
    files = [f for f in listdir(app.config['UPLOAD_FOLDER']) if isfile(join(app.config['UPLOAD_FOLDER'], f))]
    return render_template("files.html", files=files)

files.html

{% for file in files %}

    <a href="{{ url_for('uploaded_file', filename = file) }}">{{ file }}</a> <br />

{% endfor %}

【讨论】:

  • 嗨,马特,谢谢。暂时就这样吧。 (只是为了好奇)我在 mysql 上有一个数据库,上传了每个文件的 url。正如您在上面解释的那样,可以更改 SELECT 的 'upload_file' 并获取文件位置?
猜你喜欢
  • 1970-01-01
  • 2014-06-22
  • 2017-03-25
  • 2019-03-23
  • 1970-01-01
  • 2021-01-22
  • 2016-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多