1

あらゆる種類のファイルをアップロードおよびダウンロードできる必要がある Web サイトをプログラミングしています。.php、.rar、.jpg、.cs、.pdf、.txt など。次のようなプレーンなhtmlを使用する場合:

 <a href="@Model.dList[i].filePath">download</a>

ブラウザにtxtおよびjpegファイルの内容が表示されますが、これが発生することは望ましくありません。コントローラーを使用して、そのためのコードを書く必要があると思います。いくつかの調査を行ったところ、ファイルの contentType 属性と関係があることがわかりました。私は彼らと少し遊んで、関数を書きました

コントローラ:

public FileResult DownloadDoc(int dID)
    {
        string filePath = getFilePath(dID);
        string contentType = getContentType(dID);
        filePath = Path.Combine(Server.MapPath(dr.GetString("FilePath")), dr.GetString("FileName"));
        return File(filePath, contentType);
    }

意見:

    @Html.ActionLink("Download", "DownloadDoc", new { dID = @Model.dList[i].documentationID })

この関数を使用すると、ファイルがダウンロードされますが、その名前は常に DownloadDoc であり、拡張子はありません。私はここで立ち往生しています。

ファイルをアップロードしている間、何か特別なことをする必要がありますか? ちなみに、ファイルをアップロードすると、パス、コンテンツタイプ、ファイル名がデータベースに保存されます。私は何をすべきか?

4

2 に答える 2

3
string fileName = "FileName.txt";
return File(filePath, contentType, fileName);

次に、ファイル名は variable の値になりますfileName

于 2012-08-13T09:47:58.420 に答える
2

File()関数の 3 番目のパラメーターを使用します。

return File(filePath, contentType, downloadFileName);
于 2012-08-13T09:46:42.347 に答える