1

ファイルのダウンロードを提供しているが、ファイルを別の場所にダウンロードしている戻りファイルがあります。ユーザーに1つのファイルをダウンロードすることを提供したいだけです。つまり、メモリから初期データを読み取るため、最初の引数戻りファイルでは、ある種のMemoryStreamですが、その方法がわかりません

    [HttpPost]
    public FilePathResult FileToFasta(F2FModel model)
    {

        string FullText = new StreamReader(model.File.InputStream).ReadToEnd();
        TextLayer layer = new TextLayer(FullText);
        string outputFile = layer.WriteToFasta();

        String mydatetime = DateTime.Now.ToString("MMddyyyy");
        string FileName = String.Format("TextFile{0}.txt", mydatetime);
        string FilePath = @"F:\test\" + FileName;
        FileInfo info = new FileInfo(FilePath);
        if (!info.Exists)
        {
            using (StreamWriter writer = info.CreateText())
            {
                writer.Write(outputFile);
            }
        }
        return File(FilePath, "text/plain", FileName);

    }

ありがとう

4

1 に答える 1

2

MemoryStreamFileStreamResultたとえば、次のように使用できます。

[HttpPost]
public FilePathResult FileToFasta(F2FModel model)
{
    string FullText = new StreamReader(model.File.InputStream).ReadToEnd();
    TextLayer layer = new TextLayer(FullText);
    string outputFile = layer.WriteToFasta();

    string mydatetime = DateTime.Now.ToString("MMddyyyy");
    string FileName = String.Format("TextFile{0}.txt", mydatetime);

    //Use different encoding if needed
    byte[] outputArray = Encoding.Unicode.GetBytes(outputFile);
    MemoryStream outputStream = new MemoryStream(outputArray); 

    //FileStreamResult will close the stream for you so don't worry
    return new FileStreamResult(outputStream, "text/plain") { FileDownloadName = FileName };
}
于 2012-11-13T16:50:05.370 に答える