ASP.NET+VB.NET ファイルをアップロードする

ASP.NET+VB.NETのファイルをアップロードするサンプルです。

確認環境
・Microsoft Visual Studio Community 2019

目次

目的 ファイルをアップロードする
サンプル フォーム
  ビュー
  コントローラ

ファイルをアップロードする

「ファイルを選択」をクリックすると、ファイル選択のダイアログが表示されファイルを選択できます。
「ボタン」を押すとファイルを所定の位置に配置(アップロード)します。

フォーム

フォームです。画面でセットしたファイル情報を保持します。ファイル名はActionForm1.vbです。

Public Class ActionForm1

    Public Property upfile1 As HttpPostedFileBase

End Class

3行目は、アップロードするファイル情報を代入する変数(プロパティ)です。
データ型は、HttpPostedFileBaseです。

以下は、MicrosoftのHttpPostedFileBaseクラスのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.web.httppostedfilebase?view=netframework-4.8

ビュー

ビューです。ファイルをアップロードする画面です。ファイル名はview1.vbhtmlです。

@Code
    Layout = Nothing
End Code
<!DOCTYPE html>
<html>
<head>
</head>
<body>
	@Using Html.BeginForm("index", "test1/FileUp", FormMethod.Post, New With {.id = "form1", .enctype = "multipart/form-data"})
			@<input type="file" name="upfile1" value="" />
			@<input type="submit" id="button1" value="ボタン" />
	End Using
</body>
</html>

9行目は、formです。enctype は、multipart/form-dataにします。
10行目は、type=fileです。「ファイルを選択」のボタンになります。

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

 

コントローラ

コントローラです。ファイル名はtest1Controller.vbです。

Namespace Controllers
	Public Class test1Controller
		Inherits Controller

		'アップロードする画面を表示
		Function Index() As ActionResult
			Return View("view1")
		End Function

		'ファイルをアップロードして画面を再表示
		Function FileUp(actionform As ActionForm1) As ActionResult

			Dim file1 As HttpPostedFileBase = actionform.upfile1

			file1.SaveAs("D:\\Test1\\" + file1.FileName)

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

6~8行目は、初期表示時のアップロードする画面を表示します。
11行目からは、ビューでsubmitしたときに実行されます。引数にActionform1がありActionform1と紐付きます。
13行目は、ビューで実行した値を取得します。
15行目は、DドライブのTest1フォルダに保存しています。
17行目は、view1の画面を再度表示します。

関連の記事

VB.NET PLSQLのselectで複数件取得する
VB.NETとPLSQLで複数件をinsertする

△上に戻る