• ASP.NET中常用功能代码总结(3)——上传图片到数据库


    ASP.NET中常用功能代码总结(3——上传图片到数据库

    整理:Terrylee

    一.上传图片到数据库

     1/// <summary>
     2/// 上传图片
     3/// </summary>

     4private void UploadFile()
     5{
     6    ///得到用户要上传的文件名
     7    string strFilePathName = loFile.PostedFile.FileName;
     8    string strFileName = Path.GetFileName(strFilePathName);
     9    int FileLength = loFile.PostedFile.ContentLength;
    10
    11    if(FileLength<=0)
    12        return;
    13
    14    ///上传文件
    15    try
    16    {
    17        
    18        ///图象文件临时储存Byte数组
    19        Byte[] FileByteArray = new Byte[FileLength];
    20
    21        ///建立数据流对像
    22        Stream StreamObject = loFile.PostedFile.InputStream; 
    23
    24        ///读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
    25        StreamObject.Read(FileByteArray,0,FileLength); 
    26
    27        ///建立SQL Server链接
    28        string strCon = System.Configuration.ConfigurationSettings.AppSettings["DSN"];
    29        SqlConnection Con = new SqlConnection(strCon);
    30        String SqlCmd = "INSERT INTO ImageStore (ImageData, ImageContentType, ImageDescription, ImageSize) VALUES (@Image, @ContentType, @ImageDescription, @ImageSize)";
    31        SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
    32        CmdObj.Parameters.Add("@Image",SqlDbType.Binary, FileLength).Value = FileByteArray;
    33        CmdObj.Parameters.Add("@ContentType", SqlDbType.VarChar,50).Value = loFile.PostedFile.ContentType; //记录文件类型
    34        
    35        ///把其它单表数据记录上传
    36        CmdObj.Parameters.Add("@ImageDescription", SqlDbType.VarChar,200).Value = tbDescription.Text;
    37        
    38        ///记录文件长度,读取时使用
    39        CmdObj.Parameters.Add("@ImageSize", SqlDbType.BigInt,8).Value = FileLength;
    40        Con.Open();
    41        CmdObj.ExecuteNonQuery(); 
    42        Con.Close();
    43
    44        ///跳转页面
    45        Response.Redirect("ShowAll.aspx");
    46    }

    47    catch(Exception ex)
    48    {
    49        throw ex;
    50    }

    51}

    二.从数据库中读取图片

     1/// <summary>
     2/// 显示图片
     3/// </summary>

     4private void ShowImages()
     5{
     6    ///ID为图片ID
     7    int ImgID = Convert.ToInt32(Request.QueryString["ID"]);  
     8    
     9    ///建立数据库连接
    10    string strCon = System.Configuration.ConfigurationSettings.AppSettings["DSN"];
    11    SqlConnection Con = new SqlConnection(strCon);
    12    String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID";
    13    SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
    14    CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = ImgID;
    15    
    16    Con.Open();
    17    SqlDataReader SqlReader = CmdObj.ExecuteReader();
    18    SqlReader.Read(); 
    19
    20    ///设定输出文件类型
    21    Response.ContentType = (string)SqlReader["ImageContentType"];
    22    
    23    ///输出图象文件二进制数制
    24    Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]); 
    25    Response.End();
    26
    27    Con.Close();    
    28}
    支持TerryLee的创业产品Worktile
    Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
    https://worktile.com
  • 相关阅读:
    Android使用Fragment来实现TabHost的功能
    selendroid之toast处理
    selendroid之inspector
    杂技
    自动化测试框架
    保险数据分析
    订单分析指标
    CRM原型
    monkey 参数
    monkey基础操作
  • 原文地址:https://www.cnblogs.com/Terrylee/p/287982.html
Copyright © 2020-2023  润新知