TagLib-sharp:从HttpPostedFile对象读取元数据

时间:2011-11-12 17:59:20

标签: mp3 taglib-sharp

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

任何人都有一个关于如何使用taglib-sharp执行此操作的示例?

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

1 个答案:

答案 0 :(得分: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) { }
}