|
1 | 1 | package cn.keking.service.impl; |
2 | 2 |
|
3 | 3 | import cn.keking.model.FileAttribute; |
| 4 | +import cn.keking.model.ReturnResponse; |
4 | 5 | import cn.keking.service.FilePreview; |
| 6 | +import cn.keking.utils.DownloadUtils; |
| 7 | +import cn.keking.utils.FileUtils; |
| 8 | +import cn.keking.web.filter.BaseUrlFilter; |
5 | 9 | import org.springframework.stereotype.Service; |
6 | 10 | import org.springframework.ui.Model; |
7 | 11 | /** |
|
13 | 17 | @Service |
14 | 18 | public class MediaFilePreviewImpl implements FilePreview { |
15 | 19 |
|
| 20 | + private final DownloadUtils downloadUtils; |
| 21 | + |
| 22 | + private final FileUtils fileUtils; |
| 23 | + |
| 24 | + public MediaFilePreviewImpl(DownloadUtils downloadUtils, |
| 25 | + FileUtils fileUtils) { |
| 26 | + this.downloadUtils = downloadUtils; |
| 27 | + this.fileUtils = fileUtils; |
| 28 | + } |
| 29 | + |
16 | 30 | @Override |
17 | 31 | public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) { |
| 32 | + // 不是http开头,浏览器不能直接访问,需下载到本地 |
| 33 | + if (url != null && !url.toLowerCase().startsWith("http")) { |
| 34 | + ReturnResponse<String> response = downloadUtils.downLoad(fileAttribute, fileAttribute.getName()); |
| 35 | + if (0 != response.getCode()) { |
| 36 | + model.addAttribute("fileType", fileAttribute.getSuffix()); |
| 37 | + model.addAttribute("msg", response.getMsg()); |
| 38 | + return "fileNotSupported"; |
| 39 | + } else { |
| 40 | + model.addAttribute("mediaUrl", BaseUrlFilter.getBaseUrl() + fileUtils.getRelativePath(response.getContent())); |
| 41 | + } |
| 42 | + } else { |
| 43 | + model.addAttribute("mediaUrl", url); |
| 44 | + } |
18 | 45 | model.addAttribute("mediaUrl", url); |
19 | 46 | String suffix=fileAttribute.getSuffix(); |
20 | 47 | if ("flv".equalsIgnoreCase(suffix)) { |
|
0 commit comments