Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Load hình ảnh từ CSDL lên Website


  2. #2
    Trích dẫn Gửi bởi nhatnghe_thuong
    Hi all!
    Mình làm Web C# mà chưa biết làm sao đưa ảnh lên web (bằng code sử dụng Hyperlink) từ trong CSDL.

    Đây là code của mình bằng VB.
    Dim hpl As HyperLink
    Dim pat As String = "~/hinh/"
    hpl = e.Item.FindControl("hplhinh")
    hpl.ImageUrl = pat & e.Item.DataItem("hinhanh")


    Mong giúp đỡ code bằng C# . Thanks
    Ta không thể trả trực tiếp dữ liệu ảnh và text về cũng 1 lúc. Nên phải dùng back request
    Thực ra các browser hiện đại cho phép encode Inline ảnh ở dạng Based-64, nhưng tui ít thấy người ta dùng, thường là toàn dùng back request để compatible với các browser không hỗ trợ Inline ảnh

    Bạn cần thiết kế 1 trang .ASPX hoặc HTTP Handler .ASHX riêng biệt
    Tui lấy ví dụ bạn sử dụng LoadAnh.ASPX



    Bạn hãy override cái OnPreInit() (tui chọn PreInit cho nó nhanh, đỡ phãi đi qua các giai đoạn khác rất mất thời gian của server)
    Bạn cần phải sử dụng 1 queryString là ID để đặc tả ảnh nào bạn muốn lấy từ Database.



    Mã:
    public void OnPreInit(...){      String ImageID = Request.QueryString["ID"];      //Dùng ImageID này để truy vấn Binary Data từ SQL server.      Byte [] BinaryAnh = LấyAnhTheoID(ImageID);      Response.Clear();      Response.ClearContent();      Response.ClearHeaders();        Response.ContentType = "Image/gif";      // Cái ContentType này tui theo loại ảnh lưu trong Database mà chỉnh sử cho hợp lý      //  Image/png ; Image/jpeg            Response.AddHeader("Content-Length", BinaryAnh.Length.ToString());      Response.OutputStream.Write(BinaryAnh, 0, (int)BinaryAnh.Length);      Response.Flush();      Response.End();}
    Sau khi làm xong compile nó deploy vào 1 folder nào đó ví dụ tui để vào thư mục gốc luôn

    Cái đoạn mã bạn ghi sữa lại như sau

    hpl.ImageUrl = "/LoadAnh.aspx?ID=hinhanh1";

    Cái hinhanh1 là cái ID rất quan trọng để cho LoadAnh.aspx biết đường load cái ảnh nào trong database của bạn.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn tạo 1 DataBase chứa sẵn hình ảnh. Tạo 1 thuộc tính datalist >> kik vào Choose Data Source (New Data Source) >> chọn Database >> Next >> chọn Source la Database mà bạn đã tạo lúc nãy >> Next >> Tick vào tên field chứa hình ảnh trong Database của bạn >> Next >> Finish

    trong Datalist sẽ xuất hiện: Picture: [Picture]. (đây là tên ví dụ của mình đặt cho bạn dễ hiểu)

    Vậy là xong rồi, hình trong Database của bạn đã hiện lên trong Datalist [IMG]images/smilies/kiss.gif[/IMG]

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Thanhks bạn nhiều!
    Nhưng mình vẫn chưa hiểu ý bạn, bạn có thể nói rõ hơn ko/
    mình chỉ muốn đưa ảnh ra Hyperlink nằm trong datalist chứa tiêu đề của những cuốn sách và cần 1 hình ảnh đi kèm minh họa.
    Nếu bạn có thể demo ko?
    Thanks!

  5. #5
    Vấn đề chính của bạn có phải là làm sao để lấy ảnh từ DB? Trong forum cũng có vài topic giải quyết câu hỏi này. Thay vì lưu vào DB bạn nên lưu vào các thư mục thì sẽ load nhanh hơn.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •