Задать вопрос
@Bajiap

Как сделать ссылки на скачивание файлов?

Подскажите как реализовать скачивание файлов, которые ранее были загружены?
from fileinput import filename
import os
from os import path 
from flask import Flask, render_template, request 
from flask import send_from_directory, send_file, url_for
import wget

UPLOAD_FOLDER = 'F:\Download' # папка для сохранения загруженных файлов
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
@app.route('/', methods=['GET', 'POST'])
def upload_file():
    if request.method == 'POST':
        for file in request.files.getlist('file'):
       
            if file:
             file_name = file.filename # получаем имя
             file.save(os.path.join(app.config['UPLOAD_FOLDER'], file_name)) # сохраняем файл
    fileslist = os.listdir(UPLOAD_FOLDER) # читаем список файлов в папке
    listfile = map(lambda name: os.path.join(UPLOAD_FOLDER, name), fileslist)
    return  render_template('index1.html', items=listfile)

if __name__ == "__main__":
    app.run()


<!doctype html>
    <head>
    <title>Загрузить новый файл</title>
    <meta charset="utf-8">
    </head>
    <h1>Загрузить новый файл</h1>
    <form method=post enctype=multipart/form-data>
      <input type=file name=file multiple>
      <input type=submit value=загрузить>
    </form>
    <body>
      <table border="1">
          <caption>Список Файлов</caption>
          <tr>
              <th>Путь</th><th>Скачать</th>
          </tr>
          {% for listfile in items %}
          <tr><td>{{ listfile }}></td><td>1</td></tr>
          {% endfor %}
      </table>
  </body>
    </html>
  • Вопрос задан
  • 520 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
dvakatri
@dvakatri
Front-end разработчик, администратор Linux.
Если я правильно понял, то Вам нужно просто скачать файл из проекта?

Если это так, то просто в теге <a> укажите ссылку на этот файл. Например, Download. Если нужно как-то по другому, то извиняюсь, что не так понял вопрос.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы