首页 > Web开发 > 详细

上传文件,获取表单数据和文件流

时间:2017-01-13 22:09:23      阅读:385      评论:0      收藏:0      [点我收藏+]

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
  request.setCharacterEncoding("UTF-8");
  response.setCharacterEncoding("UTF-8");
  WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
  SessionParams sessionParams = (SessionParams) VSessionUtils.getSessionParams(request);
  UserLogin userLogin = sessionParams.getUserInfo();
  UserConfig userConfig = sessionParams.getCustoms();

  FileInfo fileInfo = new FileInfo();
  String fileName = "";
  String orgFileName = "";
  String bucket="";
  if(null!=userLogin && null!=userLogin.getWebFile()){
    bucket= userLogin.getWebFile().getBucketName();
  }
  String fileUrl = "";
  String vId = "";
  String wId = "";
  WebCastServiceImpl webcastService=BeanUtils.getBean(WebCastServiceImpl.class);
  // 创建缓冲区
  DiskFileItemFactory factory = new DiskFileItemFactory();
  ServletFileUpload upload = new ServletFileUpload(factory);

  FileItemIterator fileItem = null;
  InputStream in=null;
  try{
  List<FileItem> items = upload.parseRequest(request);
  Iterator iter = items.iterator();

  while (iter.hasNext()) {
  FileItem item = (FileItem) iter.next();
  // String name = item.getFieldName();
  if(item.isFormField()){//判断是否是文件流

    String name = item.getFieldName();
    String value = item.getString();
    if(name.equals("wId")){
      wId=item.getString();
    }
  }
  if(!item.isFormField() && item.getName().length() > 0){
    fileName = item.getName();//会将完整路径名传过来
    /*int start = value.lastIndexOf("\\");
    fileName = value.substring(start+1);*/
    if(fileName.indexOf("\\") > 0){
    String[] tempArr = fileName.split("\\\\");
    fileName = tempArr[tempArr.length -1];
  }
  fileInfo.setFilename(fileName);
  fileInfo.setFiletype(this.getExtension(fileName));
  fileInfo.setFilename(getFileUrl(fileName,fileInfo.getFiletype()));
  orgFileName = fileName;
  if(!fileInfo.getFiletype().equals("mp4")){
    response.sendRedirect("/worklite/webcast/open/uploadTemp?success=type&vId=&fileName=");
    return;
  }
  if(null!=fileName && !fileName.equals("")){
    UUID uuid = UUID.randomUUID();
    fileName = uuid.toString()+"."+fileInfo.getFiletype();
    fileInfo.setFilename(fileName);
  }
  in = item.getInputStream();
  //item.write(new File(realPath,fileName));

  }
  }
  WebCast_baseinfo base=webcastService.getWebCast(wId);
  LocalFileManager fileMgr = new LocalFileManager();
  fileUrl = fileMgr.recvFromStream(FileConstants.TYPE_MEDIA, FileConstants.SUBTYPE_VIDEO, fileInfo.getFilename(), in);
  vId=UploadVideo.upload(fileMgr.getServerFileURL(FileConstants.TYPE_MEDIA, FileConstants.SUBTYPE_VIDEO,fileName), base.getCompanyId()+"_"+base.getwName()+"_"+orgFileName);

  WebCast_upvideo upvideo=webcastService.getWebcastUploadVideo(wId);
  try{
    if(null!=upvideo){
      webcastService.uptWebcastUploadVideo(wId,vId);
    }else{
      webcastService.addWebcastUploadVideo(wId,vId,new Date());
    }
  }catch(Exception e){
    Log.error(e.getMessage());
    response.sendRedirect("/worklite/webcast/open/uploadTemp?success=false&vId=&fileName=");
  }
  response.sendRedirect("/worklite/webcast/open/uploadTemp?success=true&vId="+vId+"&fileName="+orgFileName);
  }catch(Exception e){
  Log.error(e.getMessage());
  response.sendRedirect("/worklite/webcast/open/uploadTemp?success=false&vId=&fileName=");
}

}

上传文件,获取表单数据和文件流

原文:http://www.cnblogs.com/momo1210/p/6283864.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!