上传视频文件到又拍云,jsp内嵌window media player在线播放
完成上述功能的后台路径
filePath.jsp(ajax)->UpYunController.java-->filePath.jsp-->CloudVideo.jsp
filePath.jsp中
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>filePath</title>
<script type="text/javascript"
src="static/js/common/jquery-1.12.4.min.js"></script>
</head>
<body>
<input type="file" id="importFile" />
<input type="button" οnclick="upload()"/>
<script>
function upload() {
var filename = document.getElementById("importFile").value;
// 这时的filename不是 importFile 框中的值
alert(filename);
$.ajax({
url:"onUpYun",
data:{"filename":filename},
type:"post",
success:function(msg){
if(msg.code==100){
window.location.href="cloudVideo.jsp?";
}else{
alert("---10000---");
}
},
error:function(){
}
});
}
</script>
UpYunController.java中
@ResponseBody
@RequestMapping(value = "onUpYun", method = RequestMethod.POST)
public Msg personInsert(String filename) {
System.out.println("filename:" + filename);
// 初始化UpYun("空间名称", "操作员名称", "操作员密码")
UpYun upyun = new UpYun("****", "***", "***");
// 例2:采用数据流模式上传文件(节省内存),自动创建父级目录
boolean result = false;
// 这个File的路径要双斜杠编译
File file = new File(filename);
try {
/*
* 上传文件时可进行文件的 MD5 校验, 若又拍云服务端收到的文件MD5值与用户设置的不一致,将返回 406 Not
* Acceptable 错误。
*/
upyun.setContentMD5(UpYun.md5(file));
} catch (IOException e1) {
System.out.println("异常1");
e1.printStackTrace();
}
String[] strs=filename.split("\\\\");
String videoAdd = strs[4];
System.out.println("上传的视频url为:"+videoAdd);
try {
result = upyun.writeFile(videoAdd, file, true);
} catch (IOException e) {
System.out.println("异常2");
e.printStackTrace();
}
System.out.println("result:" + result);
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
HttpSession session = request.getSession();
// 将数据存储到session中
session.setAttribute("videoAdd", "http://cloud-video.test.upcdn.net/"+videoAdd);
return Msg.success();
}
CloudVideo.jsp中
<script type="text/javascript"
src="static/js/common/jquery-1.12.4.min.js"></script>
<body>
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,1,5,217"
id="MediaPlayer" type=application/x-oleobject width="560" height="360"
standby="Loading Microsoft Windows Media Player components..."
VIEWASTEXT align="middle">
<param name="Filename" value=${videoAdd} valuetype="ref">
<param name="PlayCount" value="0">
<param name="AutoStart" value="1">
<param name="ClickToPlay" value="1">
<param name="EnableFullScreen Controls" value="1">
<param name="ShowAudio Controls" value="1">
<param name="EnableContext Menu" value="1">
<param name="ShowDisplay" value="0">
</object>
</body>
效果图
这里要等待一下,因为是上传到云,所以要联网,而且因为带宽问题也要一点点时间。
当后台输出true,就证明上传成功了。