如何将HttpPostedFileBase文件转换为Java.Io.InputStream?

如何将HttpPostedFileBase文件转换为Java.Io.InputStream?,java,c#,ikvm,mpxj,Java,C#,Ikvm,Mpxj,我正在使用MPXJ库开发ASP.net。MPXJ的.net版本是使用IKVM创建的 目前,我有一个大问题:在将一个文件(Microsoft Project file-.mpp文件)上传到服务器(我不需要保存)后,我想将HttpPostedFileBase转换为IKVM版本的java.io.InputStream,MPXJ将对其进行操作,但我不知道如何实现这一点。 我的代码: 您需要一个包装器来提供IKVM Java类型Java.io.InputStream和.net流实例之间的转换。幸运的是,I

我正在使用MPXJ库开发ASP.net。MPXJ的.net版本是使用IKVM创建的

目前,我有一个大问题:在将一个文件(Microsoft Project file-.mpp文件)上传到服务器(我不需要保存)后,我想将HttpPostedFileBase转换为IKVM版本的java.io.InputStream,MPXJ将对其进行操作,但我不知道如何实现这一点。 我的代码:


您需要一个包装器来提供IKVM Java类型Java.io.InputStream和.net流实例之间的转换。幸运的是,IKVM船上有一个

使用包装器,您的示例将如下所示:

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

您需要一个包装器来提供IKVM Java类型Java.io.InputStream和.net流实例之间的转换。幸运的是,IKVM船上有一个

使用包装器,您的示例将如下所示:

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

如果您不想使用IKVM,可以按如下方式实现:

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));
}

如果您不想使用IKVM,可以按如下方式实现:

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));
}