SSM框架上传视频(带进度条)

SSM框架上传视频,并且显示进度条,如下所示:

在这里插入图片描述
首先,配置spring-mvc.xml,如下所示,默认值是不超过500左右!
在这里插入图片描述

 <!-- 文件上传的配置 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- 指定所上传文件的总大小不能超过500MB。注意maxUploadSize属性的限制不 是针对单个文件,而是所有文件的容量之和 -->
    <property name="maxUploadSize" value="524288000"></property>
    </bean>

JSP代码如下:
在这里插入图片描述

<!-- 视频上传 -->
			<div class="form-group" id="passwordDiv" style="width:100%">
				<label class="col-sm-2 control-label">上传视频:</label>
				<div class="col-xs-2">
				<input type="file" id="batchFile" >
		        <lable id="lableok" style="display: none">
		        <i class="glyphicon glyphicon-ok"></i>上传成功</lable>
				</div>
		    </div>
		    <div class="form-group" style="width:100%;margin-left:5%">
		    	<div class="col-xs-2">
		    	<div class="progress progress-striped active" style="display: none">
			    <div id="progressBar" class="progress-bar progress-bar-info"role="progressbar" aria-valuemin="0" aria-valuenow="0"aria-valuemax="100" style="width: 0%">
			        </div>
		      		</div>
		    	</div>
		    </div>
		    <div class="form-group" style="width:100%;margin-left:5%">
		    	<div class="col-xs-2">
		    		<input id="batchUploadBtn" type="submit" name="submit" class="btn btn-success" value="上传" />
		    	</div>
		    </div>
  		 </div>

点击上传按钮时,用JS对文件进行判断是否是视频类型,截取文件的后缀名进行判断,也可以用正则表达式。
在这里插入图片描述

 // 上传按钮
	    $("#batchUploadBtn").attr('disabled', true);
	    // 上传文件按钮点击的时候
	    $("#batchUploadBtn").click(function() {
		 var tv_id =document.getElementById('batchFile').value;//根据id得到值
		 var index= tv_id.indexOf("."); //(考虑严谨用lastIndexOf(".")得到)得到"."在第几位
		 tv_id=tv_id.substring(index); //截断"."之前的,得到后缀
		     if(tv_id!=".mp4"&&tv_id!=".rmvb"&&tv_id!=".avi"&&tv_id!=".ts"&& tv_id !=".mov" ){ //根据后缀,判断是否符合视频格式
		         alert("不是指定视频格式,重新选择"); 
		       return false;
		  }
	        // 进度条归零
	        $("#progressBar").width("0%");
	        // 上传按钮禁用
	        $(this).attr('disabled', true);
	        // 进度条显示
	        $("#progressBar").parent().show();
	        $("#progressBar").parent().addClass("active");
	        // 上传文件
	        UpladFile();
	    })
	     // 文件修改时
	    $("#batchFile").change(function() {
	        $("#batchUploadBtn").val("上传");
	        $("#progressBar").width("0%");
	        var file = $(this).prop('files');
	        if (file.length != 0) {
	            $("#batchUploadBtn").attr('disabled', false);
	        }
	    });
	     function UpladFile() {
	        var fileObj = $("#batchFile").get(0).files[0]; // js 获取文件对象
	        console.info("上传的文件:"+fileObj);
	        var FileController = "${ctx}/index/jindutiaoupload.do"; // 接收上传文件的后台地址 
	        var form = new FormData();
	        form.append("file", fileObj); // 文件对象
	        var xhr = new XMLHttpRequest();
	        xhr.open("post", FileController, true);
	        xhr.onload = function() {
	            $("#lableok").show();
	            $("#batchUploadBtn").attr('disabled', false);
	            $("#batchUploadBtn").val("上传");
	            $("#progressBar").parent().removeClass("active");
	            $("#progressBar").parent().hide();
	        };
	        xhr.upload.addEventListener("progress", progressFunction, false);
	        xhr.send(form);
	    };
	    
	    function progressFunction(evt) {
	        var progressBar = $("#progressBar");
	        if (evt.lengthComputable) {
	            var completePercent = Math.round(evt.loaded / evt.total * 100)+ "%";
	            progressBar.width(completePercent);
	            $("#batchUploadBtn").val("正在上传 " + completePercent);
	        }
	    };

如果修改成其他文件,继续保持原来页面状态。
在这里插入图片描述
确认上传且后缀名正确的时候,传到后台,进行上传本地
在这里插入图片描述
后台上传方法,我的路径是直接上传到Tomcat服务器的项目里,也可以上传到其他地方,在上传Tomcat的弊端就是,当项目从Tomcat移除后,可能上传的视频也就不存在,不建议上传Tomcat。
在这里插入图片描述

// 处理上传的
    @RequestMapping("/jindutiaoupload")
    public void uploadvideo(HttpServletResponse response,HttpServletRequest request,
            @RequestParam("file") CommonsMultipartFile file) throws IOException {
        PrintWriter out;
        boolean flag = false;
        if (file.getSize() > 0) {
        	request.getSession().getServletContext().getRealPath("/");
        	//路径
            String path = System.getProperty("user.dir").replace("bin", "webapps")+"\\testupload\\upload";
            //获取文件原名
			String fullName=file.getOriginalFilename();
			//获取扩展名称
			String ext=fullName.substring(fullName.lastIndexOf("."));
			//拼接文件保存的名称
			String fileName=System.nanoTime()+ext;
            try {
                FileUtils.copyInputStreamToFile(file.getInputStream(),
                        new File(path, fileName));
                flag = true;
            } catch (Exception e) {
            }
        }
        out = response.getWriter();
        if (flag == true) {
            out.print("1");
        } else {
            out.print("2");
        }
    }

上传成功后如下图所示:
在这里插入图片描述

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
一、项目简介 本项目是一套基于SSM视频播放网站,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 二、技术实现 ​后台框架:Spring、SpringMVC、MyBatis ​数据库:MySQL 开发环境:JDK、Eclipse、Tomcat 三、系统功能 该视频播放网站共包含两种角色:用户、管理员,主要分为前台和后台两大模块。 本系统主要包含了系统用户管理、站内新闻管理、收藏信息管理、收藏信息管理多个功能模块。下面分别简单阐述一下这几个功能模块需求。 1.管理员的登录模块:管理员登录系统对本系统其他管理模块进行管理。 2.用户的登录模块:用户登录本系统,对个人的信息等进行查询,操作可使用的功能。 3.用户注册模块:游客用户可以进行用户注册,系统会反馈是否注册成功。 4.添加管理员模块:向本系统中添加更多的管理人员,管理员包括普通管理员和超级管理员。 5.站内新闻管理模块: 站内新闻列表:将数据库的站内新闻表以列表的形式呈现给管理员。 添加站内新闻:实现管理员添加站内新闻。 修改站内新闻:实现管理员修改站内新闻。 6.视频类别管理模块: 视频类别列表:将数据库的视频类别表以列表的形式呈现给管理员。 添加视频类别:实现管理员添加视频类别。 修改视频类别:实现管理员修改视频类别。 7.收藏信息管理模块: 收藏信息列表:显示系统的所有收藏信息,可以通过关键字查询。 收藏信息删除:对输入错误或过期的收藏信息删除。 视频信息管理模块: 视频信息列表:显示系统的所有视频信息,可以通过关键字查询。 视频信息删除:对输入错误或过期的视频信息删除。 8.用户模块: 资料管理:用户登录本系统。可以对自己的个人主页进行查看。 系统信息:用户可以查看自己的系统提示信息。 修改资料:用户可以修改自己的账号密码。 信息搜索:用户可以通过关键字搜索站内信息。 密码修改:用户可以修改个人登录密码。 9.系统管理模块:包括数据备份。 10.退出模块: 管理员退出:管理员用来退出系统。 用户退出:用户用来退出系统。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值