You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.2 KiB

from flask import Flask, send_from_directory, render_template, jsonify
import os
app = Flask(__name__)
# 静态文件主目录
#loc
#STATIC_DIR = "/Users/zgz/Documents/images/share/bak"
#server
STATIC_DIR = "/mnt/self"
# 支持的文件类型
IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".gif", ".JPG", ".JPEG", ".PNG", ".GIF"}
VIDEO_EXTENSIONS = {".mp4", ".avi", ".mov", ".wmv", ".m4v", ".mpg"}
# 递归获取目录中的所有文件
def get_files(directory):
files = []
for root, _, filenames in os.walk(directory):
for filename in filenames:
ext = os.path.splitext(filename)[1].lower()
if ext in IMAGE_EXTENSIONS or ext in VIDEO_EXTENSIONS:
relative_path = os.path.relpath(os.path.join(root, filename), STATIC_DIR)
files.append(relative_path)
return files
@app.route('/')
def index():
files = get_files(STATIC_DIR)
return render_template('index.html', files=files)
@app.route('/media/<path:filename>')
def media(filename):
# 返回静态文件(支持子目录)
return send_from_directory(STATIC_DIR, filename)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8088)