using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.SqlClient;
namespace WebApplication2
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.HtmlControls.HtmlInputFile SelectFile;
protected System.Web.UI.HtmlControls.HtmlInputButton Submit1;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Button Button1;
private string de = ",:";
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Submit1.ServerClick += new System.EventHandler(this.Submit1_ServerClick);
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Submit1_ServerClick(object sender, System.EventArgs e)
{
//<input type=file id=SelectFile runat=server>
if(SelectFile.PostedFile==null)
{
return;
}
else
{
HttpPostedFile myFile = SelectFile.PostedFile;
string strFileName = Path.GetFileName(myFile.FileName);
System.IO.Directory.CreateDirectory("D:\\Temp\\Test");//Create new directory
//myFile.SaveAs("D:\\temp\\"+strFileName); //Save the upload file in the folder
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Save the file as binary file in the database
//将上传的文件转化为二进制格式的字节流并存放到数据库中
string datasourse = System.Configuration.ConfigurationSettings.AppSettings["datasourse"];
FileInfo fi = new FileInfo(myFile.FileName);
FileStream fs = fi.OpenRead();
Byte[] bytes = new byte[fs.Length];
fs.Read(bytes,0,Convert.ToInt32(fs.Length));
SqlConnection con = new SqlConnection(datasourse);
string sqlstr = "INSERT INTO Table1(FileInfo,FileName) VALUES (@FileInfo,@FileName)";
SqlCommand command = new SqlCommand(sqlstr,con);
command.Parameters.Add("@FileInfo",SqlDbType.Image,Convert.ToInt32(fs.Length));
command.Parameters["@FileInfo"].Value =bytes;
command.Parameters.Add("@FileName",SqlDbType.VarChar,50);
command.Parameters["@FileName"].Value = strFileName;
command.Connection.Open();
command.ExecuteNonQuery();
command.Connection.Close();
}
}
//**************************************************************************
//将存放在数据库中的文件下载下来并保存
private void Button1_Click(object sender, System.EventArgs e)
{
string datasourse = System.Configuration.ConfigurationSettings.AppSettings["datasourse"];
SqlConnection con = new SqlConnection(datasourse);
string sqlstr = "select FileInfo from table1 where id=@ID";
SqlCommand command = new SqlCommand(sqlstr,con);
command.Parameters.Add("@ID",SqlDbType.Int,4);
command.Parameters["@ID"].Value =5;
command.Connection.Open();
System.Data.SqlClient.SqlDataReader dr;
dr = command.ExecuteReader();
byte [] File = null;
if(dr.Read())
{
File = (byte[])dr[0];
}
FileStream fs=new FileStream("D:\\Temp\\Test\\test1.txt",FileMode.CreateNew);
BinaryWriter bw=new BinaryWriter(fs);
bw.Write(File,0,File.Length);
bw.Close();
fs.Close();
command.Connection.Close();
}
}
}