package com.servlet;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.dao.MediaDao;
import com.dao.MediaRevDao;
import com.jspsmart.upload.File;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
import com.toolsBean.Change;
import com.valueBean.MediaSingle;
import com.valueBean.UserSingle;
public class MediaServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String action=request.getParameter("action");
if("listShow".equals(action))
doListShow(request,response);
else if("singleShow".equals(action))
doSingleShow(request,response);
else if("adminList".equals(action))
doAdminList(request,response);
else if("adminSingle".equals(action))
doAdminSingle(request,response);
else if("insert".equals(action))
doInsert(request,response);
else if("delete".equals(action))
doDelete(request,response);
else
doOther(request,response);
}
protected void doListShow(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setAttribute("mainPage",getInitParameter("listShowPage"));
HttpSession session=request.getSession();
UserSingle callMaster=(UserSingle)session.getAttribute("callBlogMaster");
int userid=callMaster.getId();
String showPage=request.getParameter("showPage");
String goWhich="my/guest/media?action=listShow";
List mediaList=null;
MediaDao mediaDao=new MediaDao();
try {
mediaList=mediaDao.getListMedia(userid,showPage, goWhich);
} catch (SQLException e) {
System.out.println("获取视频列表失败!");
e.printStackTrace();
}
request.setAttribute("medialist",mediaList);
request.setAttribute("createPage",mediaDao.getPage());
String forward=this.getServletContext().getInitParameter("indexTemp");
RequestDispatcher rd=request.getRequestDispatcher(forward);
rd.forward(request,response);
}
protected void doSingleShow(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setAttribute("mainPage",getInitParameter("playPage"));
try {
MediaDao mediaDao=new MediaDao();
int id=Change.strToInt(request.getParameter("id"));
mediaDao.setLookCount(id); // 将视频的观看次数加1
MediaSingle single=mediaDao.getSingleMedia(id); // 获取视频的详细信息
/* 获取该视频的最新的前n条评论 */
MediaRevDao mediaRDao=new MediaRevDao();
List mediaRlist=mediaRDao.getNewReviewList(id);
/* 保存要播放的视频、视频的评论 */
request.setAttribute("mediasingle",single);
request.setAttribute("mediaRlist",mediaRlist);
} catch (Exception e) {
System.out.println("获取视频详细信息失败!");
e.printStackTrace();
}
String forward=this.getServletContext().getInitParameter("indexTemp");
RequestDispatcher rd=request.getRequestDispatcher(forward);
rd.forward(request,response);
}
protected void doAdminList(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setAttribute("mainPage",getInitParameter("adminListPage"));
HttpSession session=request.getSession();
UserSingle logoner=(UserSingle)session.getAttribute("logoner");
int whoid=logoner.getId();
String showPage=request.getParameter("showPage");
String goWhich="my/admin/media?action=adminList";
List mediaList=null;
MediaDao mediaoDao=new MediaDao();
try {
mediaList=mediaoDao.getListMedia(whoid,showPage, goWhich);
} catch (SQLException e) {
System.out.println("后台-获取影音列表失败!");
e.printStackTrace();
}
request.setAttribute("medialist",mediaList);
request.setAttribute("createPage",mediaoDao.getPage());
String forward=this.getServletContext().getInitParameter("adminTemp");
RequestDispatcher rd=request.getRequestDispatcher(forward);
rd.forward(request,response);
}
protected void doAdminSingle(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setAttribute("mainPage",getInitParameter("adminPlayPage"));
try {
int id=Change.strToInt(request.getParameter("id"));
MediaDao mediaDao=new MediaDao();
MediaSingle single=mediaDao.getSingleMedia(id); // 获取影音的详细信息
/* 获取该视频的最新的前n条评论 */
MediaRevDao mediaRDao=new MediaRevDao();
List mediaRlist=mediaRDao.getNewReviewList(id);
/* 保存要播放的视频、视频的评论 */
request.setAttribute("mediasingle",single);
request.setAttribute("mediaRlist",mediaRlist);
} catch (Exception e) {
System.out.println("后台-获取影音详细信息失败!");
e.printStackTrace();
}
String forward=this.getServletContext().getInitParameter("adminTemp");
RequestDispatcher rd=request.getRequestDispatcher(forward);
rd.forward(request,response);
}
protected void doInsert(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setAttribute("mainPage",getInitParameter("upLoadPage"));
String message="";
HttpSession session=request.getSession();
int whoid=((UserSingle)session.getAttribute("logoner")).getId();
String type=request.getParameter("type");
if("upload".equals(type)){ //如果是单击"上传视频"提交按钮触发的请求
try {
SmartUpload myup=new SmartUpload();
myup.initialize(this, request, response);
myup.setAllowedFilesList("avi,asf,asx,3gp,mpg,mov,mp4,wmv,flv"); //设置允许上传的文件类型
myup.upload(); //上传文件
File upfile=myup.getFiles().getFile(0); //获取上传的文件。因为只上传了一个文件,所以只有一个元素
message=validateUpLoad(upfile);
if(message.equals("")){ //如果通过验证
Date now=new Date(); //获取当前时间
String serialName=Change.getSerial(now); //调用工具Bean根据当前时间获取一个惟一名称
String basePath=getServletContext().getRealPath("\\"); //获取Web应用的实际存放路径
String upFilePath=basePath+"pages\\admin\\media\\temp\\"+serialName+"."+upfile.getFileExt(); //设置一个保存临时文件的路径:Web应用根目录\pages\admin\media\temp\上传的文件。(如,F:\Tomcat 6.0\webapps\MediaBlog\pages\admin\media\temp\04302008143755.mpg)
String flvFilePath=basePath+"pages\\media\\videos\\"+serialName+".flv"; //设置转换为flv格式后文件的保存路径
String cutPicPath=basePath+"images\\media\\"+serialName+".jpg"; //设置从上传的视频中截取的图片的保存路径
upfile.saveAs(upFilePath,File.SAVEAS_PHYSICAL); //保存文件到磁盘中,作为临时文件
boolean mark=convertVideo(upFilePath,flvFilePath,cutPicPath); //转换视频格式
if(mark){ //转换视频格式成功,向数据表中添加该视频信息
String src=serialName+".flv"; //获取视频成功转换为flv格式后的文件名
String time=Change.dateTimeChange(now);
String pic=serialName+".jpg"; //获取视频的截图名称
int count=0; //设置视频的访问次数
String info=myup.getRequest().getParameter("info"); //获取输入的视频描述信息
String title=myup.getRequest().getParameter("title"); //获取输入的视频标题
if(title==null||title.equals(""))title="无标题";
if(info==null||info.equals
评论0