2017-12-05 14 views
0

아래 코드와 같이 팩스 보내기 용 전역 API가 있습니다. 현재 단일 파일을 첨부 파일로 보낼 수는 있지만 단일 팩스 요청으로 여러 파일을 보내는 경우가 있습니다 파일 이름은하나의 팩스에 여러 파일 보내기

0 팩스

package oracle.apps.print; 

import com.softlinx.replixfax.*; 
import javax.xml.ws.*; 
import org.apache.commons.codec.binary.Base64; 
import java.nio.file.Files; 
import java.nio.file.Paths; 
import java.nio.file.Path; 
import java.io.File; 

public class Fax { 

public String Fax(String Filepath,String faxno,String flg) { 

     try { 


      ReplixFaxService service = new ReplixFaxService(); 
      ReplixFaxPort port = service.getReplixFaxPort(); 
      ((BindingProvider) port).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "user"); 
      if (flg.toString().equals("N")) {   
       ((BindingProvider) port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,"https://api.rpxfax.com/softlinx/replixfax/wsapi"); 
     } else {  
       ((BindingProvider) port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,"https://api.rpxtest.com:8083/softlinx/replixfax/wsapi"); 
     } 


      Authentication auth = new Authentication(); 
      auth.setLogin("user"); 
      String password="pwd"; 

      auth.setPassword(org.apache.commons.codec.binary.Base64.encodeBase64String(password.getBytes())); 
      auth.setRealm("MTBC"); 
      auth.setPasswordSecurity("base64"); 


      SendFaxInput sendFaxInput = new SendFaxInput(); 
      sendFaxInput.setAuthentication(auth); 

      FaxRecipient recipient = new FaxRecipient(); 
      recipient.setFaxNumber(faxno.toString()); 

      Attachment attachment = new Attachment(); 
      File f = new File(Filepath.toString()); 
      attachment.setFileName(f.getName()); 

      Path path = Paths.get(Filepath.toString()); 
      byte[] data = Files.readAllBytes(path); 
      attachment.setAttachmentContent(data); 

      sendFaxInput.getFaxRecipient().add(recipient); 
      sendFaxInput.getAttachment().add(attachment); 

     SendFaxOutput result = port.sendFax(sendFaxInput); 
      System.out.println("Status Code= " + result.getRequestStatus().getStatusCode()); 

     if(result.getFaxInfo() != null){ 
      System.out.println("Fax ID = " + result.getFaxInfo().get(0).getFaxId()); 

      } 
     return result.getRequestStatus().getStatusCode(); 
    //return "a"; 



     } catch (Exception ex) { 
      System.out.println("Exception: " + ex.getMessage()); 
     return ex.getMessage(); 

     } 
    } 
} 

내가 파일을 첨부하고 전송하기위한

다음

C:\\INVOICES\\2017\\NOV\\Omni-PBS OU\\Non-Auto\\Non-Auto (with late fee)\\2210098.pdf///C:\\INVOICES\\2017\\NOV\\Automatic Invoice Payment Authorization Form - MTBC.pdf///C:\\INVOICES\\2017\\NOV\\Important Announcement - MTBC.pdf

완료 코드 데이터베이스로 제공이 순서에

Attachment attachment = new Attachment(); 
File f = new File(Filepath.toString()); 
attachment.setFileName(f.getName()); 

Path path = Paths.get(Filepath.toString()); 
byte[] data = Files.readAllBytes(path); 
attachment.setAttachmentContent(data); 

sendFaxInput.getFaxRecipient().add(recipient); 
sendFaxInput.getAttachment().add(attachment); 

나는 내가 이것을 해결 한

답변

0

도움이

String[] f_paths = Filepath.split("///"); 
      for (int i = 0; i < f_paths.length; i++) { 

       Attachment attachment = new Attachment(); 
       File f = new File(f_paths[i].toString()); 
       attachment.setFileName(f.getName()); 

       Path path = Paths.get(f_paths[i].toString()); 
       byte[] data = Files.readAllBytes(path); 
       attachment.setAttachmentContent(data); 
       sendFaxInput.getAttachment().add(attachment); 
      } 

그냥 분할에 대한 코드를 추가 혼자 첨부 파일을 모두 고려하는 것이 도움이 필요, 여러 첨부 방식으로 내 위 파일의 문자열을 구문 분석 할 수 파일 문자열을 구분 기호로 묶고 루프를 통해 반복하십시오.