FileUploadコントロールを用いてファイルや画像をアップロードする - アップローダーの作成 - ASP.NET
FileUploadコントロールを用いてファイルをアップロードします。
プログラム
UI
下図のフォームを設計します。
フォームにFileUploadコントロールとButtonコントロールを配置します。
コード
アップロードボタンのClickイベントにコードを記述します。
アップロードしたファイルをファイルとして配置する場合
FileUpload.SaveAs()メソッドを用いることでアップロードされたファイルをファイルシステムに保存できます。
protected void Button_Upload_Click(object sender, EventArgs e)
{
try {
//CurrentDirPath はserver.MapPath()などでディレクトリ位置を取得する。
FileUpload1.SaveAs(CurrentDirPath + "/" + FileUpload1.FileName);
}
catch (UnauthorizedAccessException ex) {
//例外処理
}
catch (IOException ex) {
//例外処理
}
}
アップロードしたファイル(画像)をデータベースに挿入する場合
この例ではデータベースのFigureテーブルに挿入します。
FileUpload.FileBytesプロパティを用いることでアップロードされた画像のバイナリ情報(byte[](バイト配列))を取得できます。
また、FileUploadに入力されたファイル名はFileUpload.FileNameプロパティで取得できます。
protected void Button_Upload_Click(object sender, EventArgs e)
{
sqlstr = "INSERT INTO Figure (FigureID, FigureData) VALUES (@fid,@photo)";
SqlCommand com = new SqlCommand(sqlstr, con);
SqlParameter param = com.CreateParameter();
param.ParameterName = "@photo";
param.SqlDbType = SqlDbType.VarBinary; //param.SqlDbType = SqlDbType.Image; でも可
param.Direction = ParameterDirection.Input;
param.Value = FileUpload1.FileBytes;
com.Parameters.Add(param);
param = com.CreateParameter();
param.ParameterName = "fid";
param.SqlDbType = SqlDbType.Int;
param.Direction = ParameterDirection.Input;
param.Value = fid;
com.Parameters.Add(param);
try
{
int rows = com.ExecuteNonQuery();
}
catch (SqlException oops)
{
Response.Write(oops.ToString());
}
finally
{
com.Dispose();
con.Close();
con.Dispose();
}
}
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用