fix: use preview-mode signed URLs and graceful media preview fallback
This commit is contained in:
@@ -3818,7 +3818,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="media-viewer-body">
|
||||
<img :src="currentMediaUrl" :alt="currentMediaName" class="media-viewer-image">
|
||||
<img :src="currentMediaUrl" :alt="currentMediaName" class="media-viewer-image" @error="handleMediaPreviewError('image')">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -3838,7 +3838,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="media-viewer-body">
|
||||
<video controls :src="currentMediaUrl" class="media-viewer-video">
|
||||
<video controls :src="currentMediaUrl" class="media-viewer-video" @error="handleMediaPreviewError('video')">
|
||||
您的浏览器不支持视频播放
|
||||
</video>
|
||||
</div>
|
||||
@@ -3863,7 +3863,7 @@
|
||||
<div class="audio-player-icon">
|
||||
<i class="fas fa-music"></i>
|
||||
</div>
|
||||
<audio controls :src="currentMediaUrl" class="media-viewer-audio">
|
||||
<audio controls :src="currentMediaUrl" class="media-viewer-audio" @error="handleMediaPreviewError('audio')">
|
||||
您的浏览器不支持音频播放
|
||||
</audio>
|
||||
</div>
|
||||
|
||||
@@ -1937,7 +1937,10 @@ handleDragLeave(e) {
|
||||
if (this.storageType === 'oss' && this.user?.oss_config_source !== 'none') {
|
||||
try {
|
||||
const { data } = await axios.get(`${this.apiBase}/api/files/download-url`, {
|
||||
params: { path: filePath }
|
||||
params: {
|
||||
path: filePath,
|
||||
mode: 'preview'
|
||||
}
|
||||
});
|
||||
if (data.success) {
|
||||
return data.downloadUrl;
|
||||
@@ -1995,6 +1998,17 @@ handleDragLeave(e) {
|
||||
}
|
||||
},
|
||||
|
||||
handleMediaPreviewError(type = 'file') {
|
||||
const typeTextMap = {
|
||||
image: '图片',
|
||||
video: '视频',
|
||||
audio: '音频'
|
||||
};
|
||||
const typeText = typeTextMap[type] || '文件';
|
||||
this.showToast('error', '预览失败', `${typeText}预览失败,请尝试下载后查看`);
|
||||
this.closeMediaViewer();
|
||||
},
|
||||
|
||||
// 打开视频播放器
|
||||
async openVideoPlayer(file) {
|
||||
const url = await this.getMediaUrl(file);
|
||||
|
||||
Reference in New Issue
Block a user