使用二进制上传图片到数据库

本文介绍如何在后台通过二进制方式将图片数据上传至数据库,已验证两种方法均有效。
摘要由CSDN通过智能技术生成

二进制上传图片到数据库

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="upload.aspx.cs" Inherits="二进制上传图片.upload" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    
    <script type="text/javascript">
        $(document).ready(function(){
            $("FileUpload1").val("");
        });
        function checkSize(obj_file) {
            var _size = obj_file.files[0].size;
            if (_size > 9000000)
                alert("超过9M");
            $(obj_file).focus();
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server"  onchange="checkSize(this)"/><asp:Button ID="Button1" runat="server" Text="上传" OnClick="Button1_Click"/>
    </div>
        
    </form>
</body>
</html>

后台页面代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.IO;
namespace 二进制上传图片
{
    public partial class upload : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //上传到数据库 注意引用using System.IO;才有Path
           /* if (!FileUpload1.HasFile)
            {
                Response.Write("未选择文件");
                return;
            }


            else
            {
                //创建访问上传文件的对象,并获取上传的文件
                HttpPostedFile file = FileUpload1.PostedFile;

                //获取上传文件的文件名和扩展名

                string filename =Path.GetFileName(FileUpload1.PostedFile.FileName);
                string extension = Path.GetExtension(filename);
                
                //实例化一个byte数组,其长度等于上传文件的长度
                byte[] imagetype = new byte[file.ContentLength];

                //将文件数据读取到byte数组中
                file.InputStream.Read(imagetype, 0, file.ContentLength);

                //判断图片格式
                if ((extension == ".jpg") || (extension == ".png") || (extension == ".gif") || (extension == ".bmp"))
                {
                    //表里写入数据
                    using (SqlConnection connection = new SqlConnection("server=.;database=ha;uid=ok;pwd=123"))
                    {

                        connection.Open();
                        SqlCommand cmd = new SqlCommand();
                        cmd.Connection = connection;

                        string commandText = "Insert into Images values (@Image_Content)";

                        cmd.CommandText = commandText;
                        cmd.CommandType = CommandType.Text;

                        cmd.Parameters.Add("@Image_Content", SqlDbType.VarBinary);
                        cmd.Parameters["@Image_Content"].Value = imagetype;




                        cmd.ExecuteNonQuery();
                        cmd.Dispose();
                        connection.Close();

                        Response.Write("导入成功");
                    }
                }
                else
                {
                    Response.Write("导入失败"); return;
                }
            }*/

            //上传指定文件夹 
            if (!FileUpload1.HasFile)
            {
                Response.Write("未选择文件");
                return;
            }
            else
            {
                string targPath = MapPath("~/image/") + FileUpload1.FileName;
               // string targPath = MapPath("~/image/") + DateTime.Now.ToOADate().ToString()+Path.GetExtension(FileUpload1.FileName);
                FileUpload1.SaveAs(targPath);
                Response.Redirect(Request.RawUrl);//解决了F5刷新页面重复上传问题
            }

        }
    }
}

两种方式都亲自测试后,为真实有效!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值