添加显示图片和视频功能

This commit is contained in:
2026-07-08 17:07:54 +08:00
parent 52abffc3c4
commit 7ee990f7a2
6 changed files with 375 additions and 13 deletions

7
src-tauri/Cargo.lock generated
View File

@@ -1465,6 +1465,12 @@ dependencies = [
"pin-project-lite",
]
[[package]]
name = "http-range"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573"
[[package]]
name = "httparse"
version = "1.10.1"
@@ -3291,6 +3297,7 @@ dependencies = [
"gtk",
"heck 0.5.0",
"http",
"http-range",
"jni",
"libc",
"log",

View File

@@ -18,7 +18,7 @@ crate-type = ["staticlib", "cdylib", "rlib"]
tauri-build = { version = "2", features = [] }
[dependencies]
tauri = { version = "2", features = [] }
tauri = { version = "2", features = ["protocol-asset"] }
tauri-plugin-dialog = "2"
tauri-plugin-opener = "2"
serde = { version = "1", features = ["derive"] }

View File

@@ -1,7 +1,7 @@
// Learn more about Tauri commands at https://tauri.app/develop/calling-rust/
use std::fs;
use tauri::menu::{MenuBuilder, MenuItemBuilder, SubmenuBuilder};
use tauri::Emitter;
use tauri::{Emitter, Manager};
use tauri_plugin_dialog::DialogExt;
#[derive(Debug, Clone, serde::Serialize)]
@@ -43,8 +43,12 @@ fn pick_folder(app: tauri::AppHandle) -> Option<String> {
}
#[tauri::command]
fn read_dir(path: String) -> Result<Vec<DirEntry>, String> {
fn read_dir(app: tauri::AppHandle, path: String) -> Result<Vec<DirEntry>, String> {
let entries = fs::read_dir(&path).map_err(|e| format!("无法读取目录: {}", e))?;
app.asset_protocol_scope()
.allow_directory(&path, true)
.map_err(|e| format!("无法授权媒体预览目录: {}", e))?;
let allowed_extensions = [
"md", "png", "jpg", "jpeg", "gif", "webp", "avif", "mp4", "webm", "mov", "m4v", "ogv",
];

View File

@@ -21,7 +21,11 @@
}
],
"security": {
"csp": null
"csp": null,
"assetProtocol": {
"enable": true,
"scope": []
}
}
},
"bundle": {