上传图片存入sql及显示

  <%@ Page Language="C#" EnableViewState="true" %> <%@ Import Namespace="System.Data.SqlClient" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> string strCnn = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Book;Server=(local);"; protected void Button1_Click( object sender, EventArgs e ) { System.IO.Stream fileDataStream = FileUpload1.PostedFile.InputStream; if (fileDataStream.Length < 1) { Msg.Text = "请选择文件。"; return; } //得到文件大小 int fileLength = FileUpload1.PostedFile.ContentLength; //创建数组 byte[] fileData = new byte[fileLength]; //把文件流填充到数组 fileDataStream.Read(fileData, 0, fileLength); //得到文件类型 string fileType = FileUpload1.PostedFile.ContentType; //构建数据库连接,SQL语句,创建参数 SqlConnection myConnection = new SqlConnection(strCnn); SqlCommand command = new SqlCommand("INSERT INTO UserPhoto (UserName,ContentType,Photo)" + "VALUES (@UserName,@ContentType,@Photo)", myConnection); command.Parameters.AddWithValue("@UserName", TextBox1.Text); command.Parameters.AddWithValue("@ContentType", fileType); command.Parameters.AddWithValue("@Photo", fileData); //打开连接,执行查询 myConnection.Open(); command.ExecuteNonQuery(); myConnection.Close(); Response.Redirect(Request.RawUrl); } protected void Page_Load( object sender, EventArgs e ) { if (!Page.IsPostBack) { BindGrid(); } } private void BindGrid( ) { SqlConnection myConnection = new SqlConnection(strCnn); SqlCommand myCommand = new SqlCommand("SELECT * FROM UserPhoto Order By id DESC", myConnection); try { myConnection.Open(); GridView1.DataSource = myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection); GridView1.DataBind(); } catch (Exception SQLexc) { Response.Write("提取数据时出现错误:" + SQLexc.ToString()); } } protected string FormatURL( object strArgument ) { return "ReadImage.aspx?id=" + strArgument.ToString(); } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>上传文件到数据库</title> </head> <body> <form id="MengXianhui" runat="server"> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> <Columns> <asp:TemplateField> <ItemTemplate> <%#Eval("UserName") %> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <img src="<%#FormatURL(Eval("id")) %>" /></ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <br /> <br /> 姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> 照片:<asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="Button1_Click"></asp:Button> <p> <asp:Label ID="Msg" runat="server" ForeColor="Red"></asp:Label></p> </form> </body> </html> 

 

显示图片

 

  <%@ Page Language="C#" %> <%@ Import Namespace="System.Data.OleDb" %> <%@ Import Namespace="System.Data.SqlClient" %> <script runat="server"> protected void Page_Load( object sender, EventArgs e ) { 构建数据库连接,SQL语句,创建参数 //ACCESS数据库使用本注释部分 //string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Image2Access.mdb"); //OleDbConnection myConnection = new OleDbConnection(strCnn); //OleDbCommand command = new OleDbCommand("select * from Person Where PersonID =" + Request.QueryString["id"], myConnection); //myConnection.Open(); //OleDbDataReader dr = command.ExecuteReader(); //if (dr.Read()) //{ // Response.Clear(); // Response.AddHeader("Content-Type", dr["PersonImageType"].ToString()); // Response.BinaryWrite((byte[])dr["PersonImage"]); //} //dr.Close(); //myConnection.Dispose(); //构建数据库连接,SQL语句,创建参数 string strCnn = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Book;Server=(local);"; SqlConnection myConnection = new SqlConnection(strCnn); SqlCommand command = new SqlCommand("select * from UserPhoto Where id =" + Request.QueryString["id"], myConnection); myConnection.Open(); SqlDataReader dr = command.ExecuteReader(); if (dr.Read()) { Response.Clear(); Response.AddHeader("Content-Type", dr["ContentType"].ToString()); Response.BinaryWrite((byte[])dr["Photo"]); } dr.Close(); myConnection.Dispose(); } </script>   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将文件上传到SQL Server数据库,需要先将文件转换成二进制数据,然后将其插入到数据库中的varbinary(max)类型字段中。以下是使用Layui上传图片并将其存入SQL Server数据库的示例: 1. 在HTML中添加文件上传表单: ```html <form class="layui-form" action="" enctype="multipart/form-data"> <div class="layui-form-item"> <div class="layui-upload"> <button type="button" class="layui-btn" id="uploadBtn">上传图片</button> <div class="layui-upload-list"> <img class="layui-upload-img" id="previewImg"> <p id="previewText"></p> </div> </div> </div> </form> ``` 2. 引入Layui和jQuery库: ```html <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css"> <script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> ``` 3. 初始化Layui上传组件: ```javascript layui.use('upload', function(){ var upload = layui.upload; //执行上传 var uploadInst = upload.render({ elem: '#uploadBtn', //绑定元素 url: '/upload/', //上传接口 accept: 'images', //允许上传的文件类型 size: 1024, //限制文件大小,单位KB done: function(res){ //上传成功回调 $('#previewImg').attr('src', res.data.src); //显示预览图 $('#previewText').html(res.data.title); //显示文件名 //将文件二进制数据存入数据库 $.ajax({ type: 'POST', url: '/saveToDB/', data: { imageData: res.data.imageData //文件的二进制数据 }, success: function(data){ console.log(data); }, error: function(){ console.log('上传失败'); } }); }, error: function(){ //上传失败回调 console.log('上传失败'); } }); }); ``` 4. 在服务器端处理上传的文件,并将其存入SQL Server数据库: ```php <?php //获取上传的文件二进制数据 $imageData = file_get_contents($_FILES['file']['tmp_name']); //连接SQL Server数据库 $serverName = "localhost"; $connectionOptions = array( "Database" => "dbname", "Uid" => "username", "PWD" => "password" ); $conn = sqlsrv_connect($serverName, $connectionOptions); //将文件二进制数据插入到数据库中 $sql = "INSERT INTO images (image_data) VALUES (?)"; $params = array($imageData); $stmt = sqlsrv_prepare($conn, $sql, $params); if(sqlsrv_execute($stmt) === false){ die(print_r(sqlsrv_errors(), true)); } sqlsrv_free_stmt($stmt); sqlsrv_close($conn); ?> ``` 注意:以上代码仅供参考,具体实现需要根据自己的实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值