使用Spring和JQuery实现视频文件的上传和播放
Spring MVC可以很方便用户进行WEB应用的开发,实现Model、View和Controller的分离,再结合Spring boot可以很方便、轻量级部署WEB应用,这里为大家介绍如何使用Spring MVC、Spring boot、JQuery实现视频文件的上传和播放服务。
工具/原料
- Eclipse
- Jdk 1.8
- Spring
- JQuery
方法/步骤
创建Spring MVC标准工程
1)在Eclipse中使用创建标准的Maven工程
2)在Maven工程的依赖关系中增加Spring boot,Spring thymeleaf,spring-boot-devtools等依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>hxb</groupId>
<artifactId>video</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
参考之前输出的Spring MVC经验文档,实现视频文件的存储服务
主要的视频文件存储服务接口类:StorageService.java
视频文件存储服务实现类:FileSystemStorageService.java
在FileUploadController控制中增加视频文件上传和存储的功能
页面逻辑: /uploadVideo -》uploadVideo.html -》/uploadVideo (Post)-》刷新uploadVideo.html(在该页面中播放上传的视频)
//文件上传的url入口:/uploadVideo,然后转入templates目录下的uploadVideo.html文件
@GetMapping("/uploadVideo")
public String showUploadVideoPage(Model model) throws IOException {
return "uploadVideo";
}
@PostMapping("/uploadVideo")
@ResponseBody
public String handleFileUploadVideo(@RequestParam("file") MultipartFile file,
RedirectAttributes redirectAttributes) {
System.out.print("handleFileUploadVideo>>>>>>>>>>>");
storageService.store(file);
return file.getOriginalFilename();
}
将jQuery-File-Upload-9.19.2插件加入到静态文件目录static目录下
在template模板目录下增加uploadVideo.html文件
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8"/>
<!-- 静态文件css,js等放在static目录下 -->
<script src="./js/jquery-3.2.1.min.js"></script>
<script src="./js/jquery-ui.js"></script>
<script src="./jQuery-File-Upload-9.19.2/js/jquery.iframe-transport.js"></script>
<script src="./jQuery-File-Upload-9.19.2/js/jquery.fileupload.js"></script>
</head>
<body>
<div align="center">
视频文件上传:<input id="fileupload" type="file" name="file" />
<h2 id="result">Uploading...</h2>
<img alt="" src="" id="imgview"/>
<video src="" id="videoview" autoplay="autoplay"></video>
</div>
<script>
$(function(){
$("#fileupload").fileupload({
dataType:"text", //返回值为String对象
add:function(e,data){
alert("Begin to upload the file...");
var acceptFileTypes = /\/(mp4)$/i;
alert(data.originalFiles[0]['type']+"-->");
if(!acceptFileTypes.test(data.originalFiles[0]['type']))
{
alert("只能选择视频文件MP4格式进行上传,请重试!");
exit;
}
alert("File size(MB):"+data.originalFiles[0]['size']/1024/1024);
if(data.originalFiles[0]['size']>20*1024*1024)
{
alert("文件不能大于20MB");
exit;
}
data.submit();
},
done:function(e,data){
alert("upload the file Successfylly:"+data.result); //返回结果保存在data.result中
$("#result").text(data.result+"文件上传成功!");
$("#videoview").attr('src',"/img/"+data.result); //修改src属性
}
});
});
</script>
</body>
</html>
运行程序进行视频文件的上传测试
1)运行application.java
2)在浏览器中输入:http://localhost:8080/uploadVideo
3)选择视频文件(mp4)进行上传操作,成功后可以在该页面中看到成功上传的视频文件
使用Spring和JQuery实现视频文件的上传和播放的更多相关文章
- Android使用OKHttp库实现视频文件的上传到服务器
目录 1 服务器接口简介 2 Android端代码实现 2.1 xml布局文件 2.2 Activity类 2.3 Okhttp网络通信类 1 服务器接口简介 此处我使用的服务器接口是使用Flask编 ...
- Spring MVC 实现文件的上传和下载
前些天一位江苏经贸的学弟跟我留言问了我这样一个问题:“用什么技术来实现一般网页上文件的上传和下载?是框架还是Java中的IO流”.我回复他说:“使用Spring MVC框架可以做到这一点,因为Spri ...
- 利用webuploader实现超大文件分片上传、断点续传
之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...
- java HTTP文件断点上传
之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...
- asp.net 如何实现大文件断点上传功能?
之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...
- jsp文件断点上传
之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...
- 视频大文件分片上传(使用webuploader插件)
背景 公司做网盘系统,一直在调用图片服务器的接口上传图片,以前写的,以为简单改一改就可以用 最初要求 php 上传多种视频格式,支持大文件,并可以封面截图,时长统计 问题 1.上传到阿里云服务器,13 ...
- spring boot:单文件上传/多文件上传/表单中多个文件域上传(spring boot 2.3.2)
一,表单中有多个文件域时如何实现说明和文件的对应? 1,说明和文件对应 文件上传页面中,如果有多个文件域又有多个相对应的文件说明时, 文件和说明如何对应? 我们在表单中给对应的file变量和text变 ...
- .Net多文件同时上传(Jquery Uploadify)
前提:领导给了我一个文件夹,里面有4000千多张产品图片,每张图片已产品编号+产品名称命名,要求是让我把4000多张产品图片上传到服务器端,而且要以产品编码创建n个文件夹,每张图片放到对应的文件夹下. ...
随机推荐
- ROS Learning-013 beginner_Tutorials (编程) 编写ROS服务版的Hello World程序(Python版)
ROS Indigo beginner_Tutorials-12 编写ROS服务版的Hello World程序(Python版) 我使用的虚拟机软件:VMware Workstation 11 使用的 ...
- Ubuntu,kubuntu与xubuntu的差别 Ubuntu各版本主要差异
Ubuntu各版本主要差异 Ubuntu官方考虑到使用者的不同需求,提供各种不同的发行版.虽然发布了几种版本的Ubuntu系统,但是它们的核心系统是一模一样的.可以这么说不同发行版的Ubuntu的区别 ...
- 机器人自主移动的秘密:实际应用中,SLAM究竟是如何实现的?(二)
博客转载自:https://www.leiphone.com/news/201612/FRzmoEI8Iud6CmT2.html 雷锋网(公众号:雷锋网)按:本文作者SLAMTEC(思岚科技公号sla ...
- noi.ac day5t1 count
传送门 分析 首先一个很重要的性质是每个数至少出现一次 所以只有一个数会出现两次 我们只需要求出n+1个数选k个数的方案数再减去重复的部分即可 重复部分于两个相同数中间的距离有关,详见代码 代码 #i ...
- ZROI2018提高day2t1
传送门 分析 考场上写了前20分和|a[i]|<=1的情况,但是因为没开long long爆零了.实际考场上差不多想到正解了,至少当时不会凸壳... 我们发现对于ax2+bx的大小关系我们可以将 ...
- 数据结构_bubble_sort
问题描述 给定一个 1~N 的排列 P,即 1 到 N 中的每个数在 P 都只出现一次. 现在要对排列 P 进行冒泡排序,代码如下:for (int i = 1; i <= N; ++i)for ...
- 写一个Android输入法01——最简步骤
本文演示用Android Studio写一个最简单的输入法.界面和交互都很简陋,只为剔肉留骨,彰显写一个Android输入法的要点. 1.打开Android Studio创建项目,该项目和普通APP的 ...
- 转场动画CALayer (Transition)
1.将对应UI控件的层调用以下接口即可 1.1 .h文件 // // 文 件 名:CALayer+Transition.h // // 版权所有:Copyright © 2018年 leLight. ...
- 手把手教你如何制作和使用lib和dll_转载
目录 静态库 什么是静态库? 怎么创建 如何使用 静态库的第一种使用方法 静态库的第二种使用方法 动态链接库 动态库是什么? 怎么创建 如何使用 隐式调用 显式调用 静态库什么是静态库?我们先来说一下 ...
- 安装SSH,配置SSH无密码登陆
环境:ubuntu16.04 Ubuntu 默认已安装了 SSH client,所以我们还需要安装 SSH server: sudo apt-get install openssh-server 安装 ...