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.
Pallet nhựa Long An đã trở thành một trong những lựa chọn phổ biến cho nhu cầu vận chuyển và lưu trữ hàng hóa trong nhiều ngành công nghiệp. Với đặc tính nhẹ nhàng, chắc chắn và dễ vận chuyển, các...
Thanh lý pallet nhựa Long An giá rẻ