下载方法:
private void DownloadFile(string gl_fileid)
{
string sql = "select * from files where fileid='" + gl_fileid + "'";
DataTable dt = DBUtil.GetData(sql);
if (dt.Rows.Count > 0)
{
DataRow dr = dt.Rows[0];
string extension = dr["filetype"].ToString();
string filename = dr["filename"].ToString();
byte[] bytes = (byte[])dr["filecontent"];
SaveFileDialog dia = new SaveFileDialog();
dia.FileName = filename;
if (dia.ShowDialog()==DialogResult.OK)
{
string filePath = dia.FileName;
FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
fs.Write(bytes, 0, (int)bytes.Length);
fs.Dispose();
fs.Close();
MessageBox.Show("文件下载成功!");
}
}
}
上传方法:
private void btnSubmit_Click(object sender, EventArgs e)
{
string filePath = this.txtFilePath.Text.ToString();
//Console.WriteLine("filePath"+filePath);
if (filePath.Length == 0)
{
MessageBox.Show("请选择要上传的文件!");
return;
}
string _fileid = Guid.NewGuid().ToString();
string _filename = filePath.Substring(filePath.LastIndexOf("\\") + 1);
string _filetype = _filename.Substring(_filename.LastIndexOf(".") + 1);
string _createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
string sql = "insert into files(fileid,filename,filetype,filecontent,createtime) values(@fileid,@filename,@filetype,@filecontent,@createtime)";
SqlParameter p_fileid = new SqlParameter("fileid", _fileid);
SqlParameter p_filename = new SqlParameter("filename", _filename);
SqlParameter p_filetype = new SqlParameter("filetype", _filetype);
SqlParameter p_createtime = new SqlParameter("createtime", _createtime);
SqlParameter p_filecontent = new SqlParameter("filecontent", SqlDbType.Image);
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, (int)fs.Length);
p_filecontent.Value = bytes;
using (SqlConnection conn = new SqlConnection(sqlconn))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sql;
cmd.Parameters.Add(p_fileid);
cmd.Parameters.Add(p_filename);
cmd.Parameters.Add(p_filecontent);
cmd.Parameters.Add(p_filetype);
cmd.Parameters.Add(p_createtime);
cmd.ExecuteNonQuery();
}
fs.Close();
fs.Dispose();
MessageBox.Show("文件上传成功!");
this.LoadData();
}