6

用户将他们的 MP3 发布到我的网站,我想在文件存储到 CDN 之前从文件中读取元数据。TagLib-Sharp 似乎是为此而设计的库,但我看不到任何打开 HttPostedFile 的方法,我不想将其保存到磁盘并检索元数据。

有人有一个关于如何使用 taglib-sharp 做到这一点的例子吗?

编辑:似乎 IFileAbstraction 可以解决这个问题。有人知道如何使用 IFileAbstraction 吗?

4

1 回答 1

5

你会想要做如下的事情。需要注意的是,蒸汽必须是可寻找的,我不知道是否HttpPostedFile.InputStream是。

TagLib.File myFile = TagLib.File.Create(new HttpPostedFileAbstraction(postedFile));

public class HttpPostedFileAbstraction : TagLib.File.IFileAbstraction
{
    private HttpPostedFile file;

    public HttpPostedFileAbstraction(HttpPostedFile file)
    {
        this.file = file;
    }

    public string Name {
        get { return file.FileName; }
    }

    public System.IO.Stream ReadStream {
        get { return file.InputStream; }
    }

    public System.IO.Stream WriteStream {
        get { throw new Exception("Cannot write to HttpPostedFile"); }
    }

    public void CloseStream (System.IO.Stream stream) { }
}
于 2012-01-16T21:18:48.507 回答