2014-06-22 10 views
1

저는 ASP.net에서 MPXJ 라이브러리로 작업하고 있습니다. MPXJ의 .net 버전은 IKVM을 사용하여 만들어졌습니다.HttpPostedFileBase 파일을 Java.Io.InputStream으로 변환하는 방법?

현재 큰 문제가 있습니다. 파일 (Microsoft Project 파일 - .mpp 파일)을 서버에 업로드 한 후 (저장하지 않아도 됨) HttpPostedFileBase에서 java의 IKVM 버전으로 변환하려고합니다. .io.InputStream과 MPXJ가 그것들을 조작 할 것이지만 이것을 구현하는 방법을 모른다. 내 코드 :

public ActionResult Upload(HttpPostedFileBase files) 
{ 
    // Todo: Convert from HttpPostedFileBase to Java.Io.InputStream 
    ProjectReader reader = new MPPReader(); 
    ProjectFile projectObj = reader.read(Java.Io.InputStream); 
} 

답변

4

당신은 iKVM을 자바 타입 java.io.InputStream를하고 .NET 스트림 인스턴스 사이의 변환을 제공하는 래퍼가 필요합니다. 운에는 그것이 있기 때문에, 래퍼를 사용하여 하나 iKVM을 배송 ...

, 당신의 예는 지금과 같이 표시됩니다 : 당신이 iKVM을 사용하지 않으려는 경우

public ActionResult Upload(HttpPostedFileBase files) 
{ 
    ProjectReader reader = new MPPReader(); 
    ProjectFile projectObj = reader.read(new ikvm.io.InputStreamWrapper(files.InputStream)); 
} 
0

, 당신이로 구현할 수 있습니다 아래 :

public ActionResult Upload(HttpPostedFileBase files) 
{ 
    byte[] fileData = null; 
    using (var binaryReader = new BinaryReader(files.InputStream)) 
    { 
     fileData = binaryReader.ReadBytes(files.ContentLength); 
    } 
    ProjectFile projectObj = reader.read(new ByteArrayInputStream(fileData)); 
}