0

我正在使用 NAudio 将我的 mp3 文件转换为波形图像,为此我正在使用文件上传器

<input type="file" name="file" /> 

因此用户可以选择他们的 mp3 文件,并可以将波形图像上传到服务器的特定位置。如果我对“c:\media\cat\001\music.mp3”进行硬编码,它工作正常,我该如何根据用户上传的内容进行更改。

//here filePath should be "c:\media\cat\001\music.mp3"
using(Mp3FileReader reader = new Mp3FileReader(filePath)) {
      using(WaveStream pcmStream = WaveFormatConversionStream.CreatePcmStream(reader)) {

        WaveFileWriter.CreateWaveFile(outputFile, pcmStream);
      }
    }

请为此提供一些解决方案以获取文件的完整路径?我知道通过文件上传我们永远不会得到客户端文件的完整路径,那么如何读取该文件,上面的代码将适合 WPF,如何在 MVC 中执行?

4

1 回答 1

1

我找到了从 url 读取的解决方案,这样我可以将多个文件传递给读取/流,这是代码

string filePath = "your mp3 url";

using(Stream ms = new MemoryStream()) {
    using(Stream stream = WebRequest.Create(filePath)
        .GetResponse().GetResponseStream()) {
      byte[] buffer = new byte[32768];
      int read;
      while((read = stream.Read(buffer, 0, buffer.Length)) > 0) {
        ms.Write(buffer, 0, read);
      }
    }

此代码将从 url 流式传输 mp3 文件并读取 mp3 并保存在内存中。

于 2012-07-06T10:04:20.953 回答