转至 :http://blog.csdn.net/fairyeye/article/details/6970266/
sing System; -
- using System.Data;
- using System.Configuration;
- using System.Collections;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using System.IO;
- using System.Data.SqlClient;
- using System.Web.Configuration;
- using System.Drawing;
- public partial class Download : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- MyDataGrid.DataSource = SqlDataSource1;
- MyDataGrid.DataBind();
- }
- protected void Button1_Click(object sender, EventArgs e)
- {
- try
- {
- if (FileUpload1.PostedFile.FileName == "")
- {
- Label1.Text = "文件不允许空!";
- return;
- }
- else
- {
- string filepath = FileUpload1.PostedFile.FileName;
- string filename = filepath.Substring(filepath.LastIndexOf("//") + 1);
- int uplength = FileUpload1.PostedFile.ContentLength;//图片大小
- string fileEx = filepath.Substring(filepath.LastIndexOf(".") + 1);
- string name = filename.Substring(0, filename.Length - 4);//文件名不带后缀名
- //判断文件格式
- if (fileEx == "jpg" || fileEx == "bmp" || fileEx == "gif" || fileEx== "png")
- {
- string serverpath = Server.MapPath("upimage/") + filename;
- FileUpload1.PostedFile.SaveAs(serverpath);//先将文件上传到服务器,保存
- HttpPostedFile hp = FileUpload1.PostedFile;//创建访问客户端上传文件的对象
- Stream sr = hp.InputStream;//创建数据流对象
- byte[] b = new byte[uplength];//定义byte型数组
- sr.Read(b, 0, uplength);//将图片数据放到b数组对象实例中,其中0代表数组指针的起始位置,uplength表示要读取流的长度(指针的结束位置)
- try
- {
- //连接<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库" target='_blank' style='color:#df3434; font-weight:bold;'>数据库</a>字符串
- string S601_dns = WebConfigurationManager.ConnectionStrings["S601ConnectionString"].ToString();
- //创建连接对象
- SqlConnection S601_myConn = new SqlConnection(S601_dns);
- //建立执行字符串
- string S601_sql = "insert into pictures(picture,pname,ptype,psize) values(@picture,@pname,@ptype,@psize)";
- //创建数据源执行命令
- SqlCommand cmd = new SqlCommand(S601_sql, S601_myConn);
- cmd.Parameters.Add("@picture", b);
- cmd.Parameters.Add("@pname", name);
- cmd.Parameters.Add("@ptype", fileEx);
- cmd.Parameters.Add("@psize", uplength);
- //打开连接对象
- S601_myConn.Open();
- cmd.ExecuteNonQuery();
- S601_myConn.Close();
- Label1.Text = "上传成功!";
- }
- catch (Exception ex)
- {
- Label1.Text = "上传失败!原因:" + ex.Message.ToString();
- }
- }
- else
- {
- Label1.Text = "图片类型错误!";
- }
- }
- }
- catch (Exception error)
- {
- Label1.Text = "处理错误!原因:" + error.ToString();
- }
- }
- }
以下是使用FileUpload 的方式: 参考如下
FileUpload实现将图片(以二进制)保存到数据库
http://blog.csdn.net/feeltouch/article/details/4361905