2016-08-04 13 views
-2

2つの@RequestMappingがあります。最初のビデオは私のサーバーにビデオをアップロードし、2番目のビデオはトランスコーディングのlinuxコマンドを実行します。2の間でデータを渡す方法@RequestMapping

すべての@RequestMappingが動作していますが、最初の@RequestMappingからアップロードされたファイルのファイル名を取得して2番目の@RequestMappingに送信する1週間から試しています。

私を助けてください!

これは最初のものである:

@RequestMapping(value = "/uploadajax", method = RequestMethod.POST) 
@ResponseBody 
public List<ObjectNode> uploadMultipleFiles(Model model, MultipartHttpServletRequest request, HttpServletResponse response, 
     Principal principal) throws IOException { 



    CommonsMultipartFile multipartFile = null; 
    Iterator<String> iterator = request.getFileNames(); 


    ObjectMapper objectMapper = new ObjectMapper(); 
    FileMeta fileMeta = null; 

    while (iterator.hasNext()) { 

     String key = iterator.next(); 

     multipartFile = (CommonsMultipartFile) request.getFile(key); 
     String uploadedFileName = multipartFile.getOriginalFilename();    


     try { 
      List<ObjectNode> listFileNode = new ArrayList<ObjectNode>(); 
      byte[] bytes = multipartFile.getBytes(); 
      String phyPath = request.getSession().getServletContext().getRealPath("/"); 
      String repoUserPath=phyPath+"resources/"+user.getId(); 
      System.out.println("-------------"+user.getId()+"------------------"); 
      System.out.println("####"+repoUserPath); 
      File repoUSer = new File(repoUserPath); 

      if (!repoUSer.exists()) { 
       repoUSer.mkdir(); 

       String filepath =repoUserPath+"/"+multipartFile.getOriginalFilename(); 
       System.out.println("####"+filepath); 
       BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(filepath)); 
       stream.write(bytes); 
       stream.close(); 

       fileMeta = new FileMeta(); 
       fileMeta.setFileName(multipartFile.getOriginalFilename()); 
       fileMeta.setFileSize((multipartFile.getSize()/1024)/1024+" Mb"); 
       fileMeta.setFileType(multipartFile.getContentType()); 
       fileMeta.setPathfile("http://89.40.113.84:8080/ProjectTranscode/resources/"+user.getId()+"/"+multipartFile.getOriginalFilename()); 
       fileMeta.setLinkdelete("/var/lib/tomcat7/webapps/ProjectTranscode/resources/"+user.getId()+"/"+multipartFile.getOriginalFilename()); 
       serviceMangerTranscode.save(fileMeta); 
       fileMeta.setUser(user); 
       serviceMangerTranscode.updateFile(fileMeta); 
       file= fileMeta; 
       model.addAttribute("Nomf", file.getFileName()); 



       System.out.println("created!!"); 
       String[] cmdArray = {"ffprobe","-show_streams","-i",filepath }; 
       model.addAttribute("filepath",filepath); 
       System.out.println("ffprobe2........!!"); 
       //String[] cmdArray = {"ping","www.google.com" }; 
       Process process = Runtime.getRuntime().exec(cmdArray); 
       InputStream processInputStream =process.getInputStream(); 
       InputStreamReader inputStreamReader = new InputStreamReader(processInputStream); 
       BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 


       String line = null; 
       System.out.println("<OUTPUT>"); 

       while ((line = bufferedReader.readLine()) != null){ 
        ObjectNode node = objectMapper.createObjectNode(); 

        System.out.println(line); 
        node.put("line",line); 

        listFileNode.add(node); 

       } 

       line ="aaa"; 
       ObjectNode node = objectMapper.createObjectNode(); 

       node.put("line",line); 
       System.out.println("</OUTPUT>"); 

       return listFileNode; 
      }else { 
       long size = FileUtils.sizeOfDirectory(repoUSer); 
       System.out.println("size 1"+(size/1024)/1024); 
       if ((size/1024)/1024 >100) { 
        ObjectNode node = objectMapper.createObjectNode();       
        node.put("error","Size Not Supported for Your repository !"); 
        listFileNode.add(node); 
       }else{ 
       System.out.println("choix2!!++"); 
       String filepath =repoUserPath+"//"+multipartFile.getOriginalFilename(); 
       System.out.println("####"+filepath); 
       BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(filepath)); 
       stream.write(bytes); 
       stream.close(); 

      // fileMeta = new FileMeta(); 
       fileMeta.setFileName(multipartFile.getOriginalFilename()); 
       fileMeta.setFileSize((multipartFile.getSize()/1024)/1024+" Mb"); 
       fileMeta.setFileType(multipartFile.getContentType()); 
       fileMeta.setPathfile(filepath); 
       fileMeta.setLinkdelete("/var/lib/tomcat7/webapps/ProjectTranscode/resources/"+user.getId()+"/"+multipartFile.getOriginalFilename()); 
       serviceMangerTranscode.save(fileMeta); 
       fileMeta.setUser(user); 
       serviceMangerTranscode.updateFile(fileMeta); 
       file= fileMeta; 
       model.addAttribute("filedetails", fileMeta); 
       System.out.println("fichier créé!!"); 
       String[] cmdArray = {"ffprobe","-show_streams","-i",filepath }; 
       System.out.println("ffprobe executee........!!"); 
       Process process = Runtime.getRuntime().exec(cmdArray); 
        InputStream processInputStream =process.getInputStream(); 
       InputStreamReader inputStreamReader = new InputStreamReader(processInputStream); 
       BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 

       String line = null; 
       System.out.println("<OUTPUT>"); 

       while ((line = bufferedReader.readLine()) != null){ 
        ObjectNode node = objectMapper.createObjectNode(); 
        // if (line.contains("codec_type") || line.contains("duration_ts")){ 
        System.out.println(line); 
        node.put("line",line); 
        listFileNode.add(node); 

       }//} 
       line ="bbb"; 
       ObjectNode node = objectMapper.createObjectNode(); 

       node.put("line",line); 
       System.out.println("</OUTPUT>"); 
       System.out.println("size 2"+(size/1024)/1024); 
       return listFileNode; 

      } 

      } 
     } catch (Exception e) { 
      return null; 
     } 
    } 

    return null; 
} 

、これが第二いずれかです。

@RequestMapping(value ="/Transcodage", method = RequestMethod.POST) 
public String Trascoood(Model model, HttpServletRequest request, HttpServletResponse response 

     ) throws IOException { 



//Recuperation des valeurs utilisateur: 
String userIDD =request.getParameter("useridd"); 
String newFileName =request.getParameter("newFileName"); 
String encolist=request.getParameter("encolist"); 
String codeclist=request.getParameter("codeclist"); 
String bitrate=request.getParameter("bitratevideo"); 
String Nomf= request.getParameter("mapping1Form"); 

System.out.println("NOMFFFFFFFFFFF: " + Nomf); 

int userIDDD = Integer.parseInt(userIDD); 
User user = userv.getUserById(userIDDD); 

ObjectMapper objectMapper = new ObjectMapper(); 
org.codehaus.jackson.node.ObjectNode node = objectMapper.createObjectNode(); 

//file= serviceMangerTranscode.getFileById(idfile); 

    ModelAndView modelUserHome = new ModelAndView("userhome"); 

    //System.out.println("file path : " + file.getPathfile() +"*************************************************"); 
    System.out.println("userIDD: " + userIDD + "..............................................."); 
    System.out.println("newFileName: " + newFileName + "..............................................."); 
    System.out.println("encolist: " + encolist + "..............................................."); 
    String newFileN = new StringBuilder().append(".").append(newFileName).append(".").append(encolist).toString(); 

    System.out.println("FILE NAME + EXTENTION: " + newFileN + "..............................................."); 
    //node.put("success", "true"); 
    String[] cmdArray = {"sudo", "ssh", "-tt", "[email protected]", "/root/dved", "-l", "89.40.112.120,89.40.112.248", "you.mp4", "-s",newFileN}; 
    //String[] cmdArray = {"sudo", "/root/dve", "-l", "89.40.112.120,89.40.112.248", "/root/greece.mkv", "-s",".teeeeeeeeeeeeest.avi" }; 
    //String[] cmdArray = {"sudo","/root/dve","-s",".encoded.avi","-l","89.40.112.248","/root/greece.mkv" }; 

    List<ObjectNode> listFileNode = new ArrayList<ObjectNode>(); 
     try{ 
      Runtime rt = Runtime.getRuntime(); 

      ProcessBuilder pb = new ProcessBuilder(cmdArray); 
      Process proc = pb.start(); 
      //Process proc = rt.exec(cmdArray); 
       int rc =0; 
       rc = proc.waitFor();  // Wait for the process to finish. 

       System.out.printf("Script executed successfully in ", rc); 

       InputStream stderr = proc.getErrorStream(); 
       InputStreamReader isr = new InputStreamReader(stderr); 
       BufferedReader br = new BufferedReader(isr); 

       String line = null; 
       System.out.println("<ERROR___EXEC>"); 


       while ((line = br.readLine()) != null){ 

        System.out.println(line); 
        node.put("line",line); 
        listFileNode.add(node); 
        } 
       System.out.println("</ERROR___EXEC>"); 
       int exitVal = proc.waitFor(); 
       System.out.println("Process exitValue: " + exitVal); 


       InputStream processInputStream =proc.getInputStream(); 
       InputStreamReader inputStreamReader = new InputStreamReader(processInputStream); 
       BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 

       System.out.println("<RESULTAT___EXEC>"); 
       while ((line = bufferedReader.readLine()) != null){ 

        System.out.println(line); 
        node.put("lineR",line); 
        listFileNode.add(node); 
            } 
       System.out.println("</RESULTAT___EXEC>"); 

     }catch (Throwable t) 
      { 
      t.printStackTrace(); 
      } 
       model.addAttribute("usersize",user.getUserfiles().size()); 
       model.addAttribute("listfiles",user.getUserfiles()); 
       model.addAttribute("user",user); 
       model.addAttribute("MsgTranscode","Votre video a bien ete encodee, vous pouvez desormais la telecharger de votre portfolio!"); 
       return "userhome"; 

} 
+0

達成したいことがわかりません。ファイル名は2番目のメソッドの必須フィールドですか? –

+0

できません。あなたはそれで何を達成しようとしていますか?通常の習慣は、 'service'を作成し、' controller'の各 'requestmapping'から呼び出すことです。 – kukkuz

答えて

0

は私が中にデータを入れて、それを行うことができないと思いますが、ご返信いただきありがとうございますデータベースを2番目のRequestMappingで回復するよりも

関連する問題