• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    asp.net(c#)實現從sqlserver存取二進制圖片的代碼

    來源:懂視網 責編:小采 時間:2020-11-27 22:42:48
    文檔

    asp.net(c#)實現從sqlserver存取二進制圖片的代碼

    asp.net(c#)實現從sqlserver存取二進制圖片的代碼:下面說說主要實現思路: 1、存取圖片 (1)、將圖片文件轉換為二進制并直接存進sql server 代碼如下://UploadHelper.cs /// <summary> /// 將圖片轉化為長二進制 /// </summary> /// <param name=photo
    推薦度:
    導讀asp.net(c#)實現從sqlserver存取二進制圖片的代碼:下面說說主要實現思路: 1、存取圖片 (1)、將圖片文件轉換為二進制并直接存進sql server 代碼如下://UploadHelper.cs /// <summary> /// 將圖片轉化為長二進制 /// </summary> /// <param name=photo

    下面說說主要實現思路:
    1、存取圖片
    (1)、將圖片文件轉換為二進制并直接存進sql server
    代碼如下:

    //UploadHelper.cs
    /// <summary>
    /// 將圖片轉化為長二進制
    /// </summary>
    /// <param name="photopath"></param>
    /// <returns></returns>
    public static Byte[] SetImgToByte(string imgPath)
    {
    FileStream file = new FileStream(imgPath, FileMode.Open, FileAccess.Read);
    Byte[] byteData = new Byte[file.Length];
    file.Read(byteData, 0, byteData.Length);
    file.Close();
    return byteData;
    }
    /// <summary>
    /// 將轉換成二進制碼的圖片保存到數據庫中
    /// </summary>
    public static bool SaveEmployeeImg2Db(Employee model, string path)
    {
    try
    {
    Byte[] imgBytes = SetImgToByte(path);
    model.Photo = imgBytes;
    bool flag=EmployeeService.SaveEmployeePhoto(model); //EmployeeService是公司內部的庫調用,插入或者更新照片,這里不透露細節
    return flag;
    }
    catch (Exception ex)
    {
    throw ex;
    }
    }

    (2)、在網頁中上傳圖片
    代碼如下:

    /// <summary>
    /// 上傳圖片
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnUpload_Click(object sender, EventArgs e)
    {
    string serverPath = Server.MapPath("~/images/");
    if (this.fuPhoto.HasFile) //fuPhoto是fileupload控件
    {
    string fileName = this.fuPhoto.PostedFile.FileName;
    FileInfo fi = new FileInfo(fileName);
    string mimeType = this.fuPhoto.PostedFile.ContentType.ToLower();
    if (mimeType.IndexOf("image") < 0)
    {
    //("上傳的照片格式不對");
    }
    else if(fi.Length > 2* 1024 * 1024)
    {
    //圖片大于2M,重新處理
    }
    else
    {
    string saveFilePath = serverPath + DateTime.Now.ToString("yyyyMMddHHmmss") + fileName;
    try
    {
    //先存圖片到服務器
    this.fuPhoto.PostedFile.SaveAs(saveFilePath);
    //轉成二進制
    Employee model = new Employee(int.Parse(id)); //id是EmployeeId,這里是模擬字段
    bool flag = UploadHelper.SaveEmployeeImg2Db(model, saveFilePath);
    }
    catch
    {
    //("照片上傳失敗");
    }
    finally
    {
    //最后刪掉該圖片
    if (System.IO.File.Exists(saveFilePath))
    {
    System.IO.File.Delete(saveFilePath);
    }
    }
    }
    }
    else
    {
    //("全選擇要上傳的照片");
    }
    }

    (3)、從數據庫取出照片(返回格式Image)
    代碼如下:

    //UploadHelper.cs
    /// <summary>
    /// 將二進制轉化為圖片Image
    /// </summary>
    /// <param name="photopath"></param>
    /// <returns></returns>
    public static System.Drawing.Image GetImgFromByte(Employee model)
    {
    System.Drawing.Image img = null;
    try
    {
    Stream stream = new MemoryStream(model.Photo);
    img = System.Drawing.Image.FromStream(stream,false);
    }
    catch
    {
    img = null;
    }
    return img;
    }

    上面的這個方法取出來之后,如果在winform下,直接給一個PictureBox的Image屬性賦值就可以了。可是web下沒有這么強大的控件,所以,就有了下面的步驟。
    2、直接在網頁中以流的形式顯示圖片
    (1)、生成圖片流頁面(ImgHelper .aspx)
    這個頁面的設計頁面什么也沒有,類文件如下:
    代碼如下:

    using 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.Collections.Generic;
    using System.IO;
    /// <summary>
    /// 圖片輔助類
    /// </summary>
    public partial class ImgHelper : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    if (!string.IsNullOrEmpty(Request["employeeId"])) //需要顯示照片的頁面傳遞的員工id
    {
    int employeeId = int.Parse(Request["employeeId"]);
    Employee model = //EmployeeService.GetEmployeeByCondition(new Employee(employeeId))[0] as Employee; //內部函數 查找一個員工 不透漏細節
    try
    {
    Byte[] byteImg = model.Photo;
    Stream stream = new MemoryStream(byteImg);
    System.Drawing.Bitmap img =(System.Drawing.Bitmap) System.Drawing.Bitmap.FromStream(stream, false); //轉換成Bitmap
    Response.Buffer = false;
    Response.ContentType = "image/jpg";
    Response.AddHeader("Content-Disposition", "attachment;filename=photo.jpg");//照片名稱叫photo.jpg
    Response.BinaryWrite(byteImg);//寫入二進制流
    Response.End();
    }
    catch
    {
    Response.End();
    }
    }
    }
    }

    (2)、顯示照片的頁面調用ImgHelper .aspx
    在頁面加載的時候,給圖片控件賦值如下:
    代碼如下:

    this.imgPhoto.ImageUrl = "/ImgHelper.aspx?employeeId="+tmpEmployee.Id.ToString(); //imgPhoto是圖片控件

    總體來說,一存一取,對于winform是很方便的,但是對于webform,我們需要稍微有一個轉化的思路。如果有牛人寫出像winform下那種直接綁定Image對象的控件更好了。上面代碼測試通過,希望對你有幫助。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    asp.net(c#)實現從sqlserver存取二進制圖片的代碼

    asp.net(c#)實現從sqlserver存取二進制圖片的代碼:下面說說主要實現思路: 1、存取圖片 (1)、將圖片文件轉換為二進制并直接存進sql server 代碼如下://UploadHelper.cs /// <summary> /// 將圖片轉化為長二進制 /// </summary> /// <param name=photo
    推薦度:
    標簽: 圖片 訪問 代碼
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产亚洲精品无码拍拍拍色欲| 精品久久久久国产免费| 中文字幕日本精品一区二区三区| 97精品国产91久久久久久| 欧美成人精品高清在线播放| 国产精品久久久久…| 呦交小u女国产精品视频| 国产精品户外野外| 国产欧美国产精品第一区| 无码国内精品人妻少妇| 精品午夜福利1000在线观看| 欧美精品香蕉在线观看网| xxx国产精品视频| 亚洲国产美女精品久久久久∴| 久久se这里只有精品| 你懂的国产精品| 99久久精品国产免看国产一区| 全球AV集中精品导航福利| 亚洲国产精品综合久久网络| 国产精品日韩欧美在线第3页| 国产精品国产三级国产专播 | 亚洲国产一成人久久精品| 欧美日韩精品系列一区二区三区国产一区二区精品 | 日韩美女18网站久久精品| 国产精品视频九九九| 国产精品秘入口福利姬网站| 久久精品www| 国产精品亚洲片夜色在线| 国产精品嫩草影院一二三区入口 | 国产精品毛片一区二区| 91嫩草亚洲精品| 成人国产精品秘 果冻传媒在线| 国内精品久久久久久野外| 国产在线不卡午夜精品2021| 高清免费久久午夜精品| 国产精品对白刺激久久久| 国产精品igao视频网| 欲帝精品福利视频导航| 在线精品无码字幕无码AV| 国产日韩精品无码区免费专区国产 | 国产偷窥熟女高潮精品视频|