【问题标题】:How to convert HttpPostedFileBase file to Java.Io.InputStream?如何将 HttpPostedFileBase 文件转换为 Java.Io.InputStream?
【发布时间】:2014-06-29 08:59:54
【问题描述】:

我正在使用 MPXJ 库在 ASP.net 上工作。 MPXJ 的 .net 版本是使用 IKVM 创建的。

目前,我有一个大问题:将文件(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);
}

【问题讨论】:

    标签: java c# ikvm mpxj


    【解决方案1】:

    您需要一个包装器来提供 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));
    }
    

    【讨论】:

      【解决方案2】:

      如果你不想使用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));
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-12
        • 1970-01-01
        • 1970-01-01
        • 2011-05-09
        • 2012-07-26
        相关资源
        最近更新 更多