(ASP.NETとVB.NET) ファイルをダウンロードする

ASP.NETとVB.NETのファイルをダウンロードするサンプルです。
(確認環境:Microsoft Visual Studio Community 2019)

目次

目的 ファイルをダウンロードする
サンプル ビュー(Index.vbhtml)
  コントローラ(Test1Controller.vb)

ファイルをダウンロードする

「ダウンロード」リンクをクリックすると、指定のファイルが指定の場所にダウンロードされます。

 

ビュー(Index.vbhtml)

ビューです。ファイルをダウンロードする画面です。

@Code
	Layout = Nothing
End Code
<!DOCTYPE html>
<html>
<head>
</head>
<body>
	<p>ダウンロードテスト</p>
	<p>@Html.ActionLink("ダウンロード", "FileDown", "Test1")</p>
</body>
</html>

10行目は、リンクです。1つめの引数はリンク名です。
2つめの引数はアクション名です。
3つめの引数はコントローラ名です。

HTMLでは、以下のように展開されます。

コントローラ(Test1Controller.vb)

Public Sub DownloadFile(address As String, destinationFileName As String)

コントローラです。

Namespace Controllers
	Public Class Test1Controller
		Inherits Controller

		'初期の画面を表示
		Function Index() As ActionResult
			Return View()
		End Function

		'ファイルをダウンロードして画面を再表示
		Function FileDown() As ActionResult

			Dim ServerPath As String = "D:\Test1\test1.txt"
			Dim DownloadPath As String = "C:\work\ダウンロードテスト1.txt"

			My.Computer.Network.DownloadFile(ServerPath, DownloadPath)

			Return View("Index")
		End Function
	End Class
End Namespace

6~8行目は、初期表示時のダウンロードする画面を表示します。
11行目からは、ビューでクリックしたときに実行されます。
13行目は、サーバー側のパスとファイルです。
14行目は、ダウンロード後のパスとファイルです。
16行目は、DownloadFileメソッドでダウンロードを実行しています。

以下は、MicrosoftのNetwork.DownloadFileメソッドのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/microsoft.visualbasic.devices.network.downloadfile?view=netframework-4.8

関連の記事

(ASP.NETとVB.NET) POSTで値を別画面に渡す
(ASP.NETとVB.NET) Web.configファイルの値を取得
(ASP.NETとVB.NET) ファイルをアップロードする

△上に戻る