0

私はうまく機能するライブラリ MPXJを使用していますが、ユーザーが自分のファイル (asp.net-mvc サイト) をアップロードできるようにしたいと考えています。これはサーバー側のフォーム ポストに HttpPostedFileBase として含まれており、メモリに変換します。次を使用してストリーミング:

    var stream = new MemoryStream();
    httpPostedFile.InputStream.CopyTo(stream);

それを考えると、私はそれをMemoryStreamとして読み込む方法を見つけようとしています(ディスク上のファイルの場所に対して)

今、私はこのようなものを持っています:

    public ProjectFile Import(string filePathandName)
    {
        MPPReader reader = new MPPReader();
        ProjectFile project = reader.read(filePathandName);

そして、私はこのようなものが欲しかった:

    public ProjectFile Import(MemoryStream stream)
    {
        MPPReader reader = new MPPReader();
        ProjectFile project = reader.read(stream);

これは「ネイティブに」可能ですか、それともファイルをサーバーに保存してからそこから読み込む必要がありますか (そのオプションを回避しようとしています)?

4

2 に答える 2

1

MPXJ には、.Net ストリームのラッパーとして機能する と という名前のクラスのペアが付属しているDotNetInputStreamためDotNetOutputStream、MPXJ が JavaInputStreamまたはOutputStream.

からの関連コメントは次のDotNetInputStreamとおりです。

/// <summary>
/// Implements a wrapper around a .Net stream allowing it to be used with MPXJ
/// where a Java InputStream is expected.
/// This code is based on DotNetInputStream.java from the Saxon project http://www.sf.net/projects/saxon
/// Note that I've provided this class as a convenience so there are a matching pair of
/// input/output stream wrapper shopped with MPXJ. IKVM also ships with an input stream wrapper:
/// ikvm.io.InputStreamWrapper, which you could use instead of this one.
/// </summary>

このクラスを使用して、質問で説明したことを達成できるはずです。

于 2016-04-15T09:53:20.730 に答える