最近在开发视频上传到oss的功能。使用的是springboot和bootstrap-fileinput插件。
在开发过程中,需要视频预览功能,但是开启预览后,视频文件一旦超过20m就无法识别视频了。
如果关闭预览的话,能识别,但是却太影响体验了。所以开始找解决方案。在看了一大堆没用的帖子后,决定还是靠自己。
于是打开fileinput.js的源码,下面是干货:
if (!canPreview && fileSize > maxPreviewSize) {
self.addToStack(file);
$container.addClass('file-thumb-loading');
self._previewDefault(file, previewId);
self._initFileActions();
self._updateFileDetails(numFiles);
readFile(i + 1);
return;
}
在大概2370行的地方的代码 fileSize = fileSize.toFixed(2);的后面加上上面的代码就ok了。
这样写完之后,20m以下的视频可以预览和上传,20m以上的视频只能上传,但是不能预览播放,但起码可以识别到了。
有大大能解决20m以上视频预览的话,恳求解决方案。。。
另外springboot的最好配置下上传文件的大小。在启动类里面配置就ok了。
@EnableWebMvc
@SpringBootApplication
@Configuration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
/**
* 文件上传配置
* @return
*/
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
//文件最大
factory.setMaxFileSize("400MB"); //KB,MB
/// 设置总上传数据总大小
factory.setMaxRequestSize("400MB");
return factory.createMultipartConfig();
}
}
最后,还是求一份20m以上视频预览播放的解决方案。。