html 引用文件夹外的媒体文件

42fyovps  于 2022-12-28  发布在  其他
关注(0)|答案(3)|浏览(202)

使用 flask 。我做了一个内部文件浏览器/媒体播放器。这是本地网络只让每个人谁有访问该页都可以访问这些文件准备。然而,我正在处理1000的位置1000的文件。是否有可能源文件在html视频播放器,或img源文件是本地。源文件不能移动,所以不能像这样转到静态文件夹等

<video src="{{ clip }}" autoplay controls></video>

当剪辑是文件路径/项目/项目_234/视频/视频_文件. mov时
我有所有需要的变量只是无法得到文件播放。
编辑01
它已经引起了我的注意,mov文件不发挥在 chrome 只有mp4的。

@app.route('/projects/<project>/<clip>', methods=['GET'])
def project_page_clip(project, clip):
    file_path = request.args.get('file_path')
    file_location = file_path
    file_name = '90Sec_Approval.mp4'
    if file_name:
        return send_from_directory(file_location,file_name)
    return render_template("project_selected_clip.html", file_path=file_path,
                           title=project, project=project, clip=clip)

因此,单击上一页时,只会在浏览器上打开剪辑,而不会呈现project_selected_clip. html模板
我怎样才能让它使用返回的send from目录作为页面上的src呢?

ggazkfy8

ggazkfy81#

经过深思熟虑,最好的办法是为文件生成符号链接

y0u0uwnf

y0u0uwnf2#

This seems to be a big help
所以在那之后...对我有效的是包括这个;

from Flask import send_file

top_dir = 'top/'
mid_dir = 'mid/'
more_dir = '/and/this/'
filename = 'some_photo.jpg'

@wip.route('/photo')
def photo():
    return send_file(top_dir+mid_dir+more_dir+filename)

提供文件!

vu8f3i0k

vu8f3i0k3#

下面是一个解答,以阐明如何在具有app.routeurl_for的应用设置中使用send_file方法。

import os
from flask import Flask, url_for, send_file

app = Flask(__name__)

# set the path where you store your assets - it can be outside of the root dir
app.config['CUSTOM_STATIC_PATH'] = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../archive'))

# have a route listening for requests
@app.route('/this/can/be/anything/<path:filename>')
def send_media(filename):
    path = os.path.join(app.config['CUSTOM_STATIC_PATH'], filename)
    return send_file(path)

# in your template, you can then use the following
# <img src="{{ url_for('send_media', filename='<dir>/<filename>') }}">

相关问题