bolb:http 加密视频路径
后台代码,仅需读取文件并变成二进制流: /** * bolb 测试 */
public void getFile(HttpServletResponse response, HttpServletRequest request){ File f = new File("service-web/src/main/resources/static/images/video1.mp4"); String fileName = f.getName(); String agent = request.getHeader("User-Agent").toUpperCase(); InputStream fis = null; OutputStream os = null; try{ fis = new BufferedInputStream(new FileInputStream(f.getPath())); byte[] buffer; buffer = new byte[fis.available()]; fis.read(buffer); response.reset(); //由于火狐和其他浏览器显示名称的方式不相同,需要进行不同的编码处理 if(agent.indexOf("FIREFOX") != -1){//火狐浏览器 response.addHeader("Content-Disposition", "attachment;filename="+ new String(fileName.getBytes("GB2312"),"ISO-8859-1")); }else{//其他浏览器 response.addHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName, "UTF-8")); } //设置response编码 response.setCharacterEncoding("UTF-8"); response.addHeader("Content-Length", ""+ f.length()); //设置输出文件类型 response.setContentType("video/mpeg4"); //获取response输出流 os = response.getOutputStream(); // 输出文件 os.write(buffer); }catch(Exception e){ System.out.println(e.getMessage()); } finally { //关闭流 try { if (fis != null) { fis.close(); } } catch (IOException e) { System.out.println(e.getMessage()); } finally { try { if (os != null) { os.flush(); } } catch (IOException e) { System.out.println(e.getMessage()); } finally { try { if (os != null) { os.close(); } } catch (IOException e) { System.out.println(e.getMessage()); } } } } }
前台接收代码:
function demoBlob() { //创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); //配置请求方式、请求地址以及是否同步 xhr.open(POST, /getBolb, true); //设置请求结果类型为blob xhr.responseType = blob; //请求成功回调函数 xhr.onload = function (e) { if (this.status == 200) {//请求成功 //获取blob对象 var blob = this.response; //获取blob对象地址,并把值赋给容器 console.log("!_______________________________________________________________________________________________") console.log("加密后的视频路径:"+URL.createObjectURL(blob)); console.log("!_______________________________________________________________________________________________") } }; xhr.send(); }
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
Java语言每日一练—第10天:谁是胖子