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

本文关键字:Java Io InputStream 转换 文件 httppostdfilebase | 更新日期: 2023-09-27 18:09:53

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

目前,我有一个大问题:上传一个文件(微软项目文件- .mpp文件)到服务器(我不需要保存它)后,我想从HttpPostedFileBase转换到java.io.InputStream和MPXJ的IKVM版本将操纵它们,但我不知道如何实现这一点。我的代码:

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

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

您需要一个包装器来提供IKVM Java类型Java .io. inputstream和.net Stream实例之间的转换。幸运的是,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));
}