ASP.NET アップロードされたファイルの内容を読み込み取得する
ASP.NET
でアップロードされたファイルの中身を取得するには以下のようにします。
WebForm1.vb.aspx
<input type="file" id="file1" runat="server" />
WebForm1.vb
Dim bs(file1.PostedFile.ContentLength) As Byte
'bsにファイルの内容をセット
file1.PostedFile.InputStream.Read(bs, 0, bs.Length)
解説
ファイルの中身はバイト配列で取得します。
ASP.NET アップロードされたファイルのサイズを取得するで紹介したように、アップロードされたファイルのサイズを取得して、そのサイズ分のバイト配列を宣言します。
そのバイト配列にファイルの中身をInputStream.Read
でセットします。
文字列で取得
アップロードしたファイルがCSV
などのテキスト形式の場合はバイト配列ではなく文字列(String
)形式で扱いたいことがあります。
バイト配列を文字列に変換する方法はVB.NET バイト配列と文字列を相互変換するで紹介しています。
ファイルの内容が取得できないとき
アップロードしたファイルの内容が取得できない時は、フォームタグにenctype="multipart/form-data"
を追加します。
WebForm1.vb.aspx
<form id="Form1" runat="server">
<form id="Form1" runat="server" enctype="multipart/form-data">
<input type="file" id="file1" runat="server" />
</form>