from flask import send_file, render_template
# 1. Маршрут, который отдает сам файл (бинарные данные)
@app.route('/raw_file/<int:file_id>')
def raw_file(file_id):
file_data = File.query.get_or_404(file_id)
file_path = os.path.join(app.config['UPLOAD_FOLDER'], file_data.storage_path)
return send_file(
file_path,
mimetype='application/pdf',
as_attachment=False # КРИТИЧНО: говорит браузеру открыть, а не скачать
)
# 2. Маршрут, который открывает страницу предпросмотра
@app.route('/preview/<int:file_id>')
def preview_pdf(file_id):
file_data = File.query.get_or_404(file_id)
return render_template('preview.html', file=file_data)