Tôi có hình ảnh được lưu trữ trong cơ sở dữ liệu của mình trong FILESTREAM và tôi đang cố gắng tìm ra giải pháp tốt nhất là đưa hình ảnh đó trở lại trình duyệt web.Cách nhanh nhất để truyền trực tuyến hình ảnh từ FILESTREAM trong SQL sang trình duyệt là gì?
Nếu tôi được quản lý tập tin trên hệ thống tập tin bản thân mình, cách nhanh nhất sẽ chỉ được:
Response.TransmitFile(pathToFile);
này không tải các tập tin vào bộ nhớ trước khi truyền nó lại cho khách hàng (sự hiểu biết của tôi) và như vậy là tốt đẹp và nhanh chóng.
Tôi hiện đang sử dụng LINQ to SQL để lấy FILESTREAM. Điều này cung cấp FILESTREAM như một đối tượng nhị phân.
Cho đến nay có cách khá xấu xí này để làm việc đó:
Response.WriteBinary(fileStreamBinary.ToArray());
Tôi sẽ khấm khá hơn không làm phiền với LINQ to SQL và làm việc trực tiếp hơn?
Tôi bắt đầu tự hỏi tại sao tôi lại bận tâm với FILESTREAM ngay từ đầu và không chỉ tự quản lý các tệp đó. Tôi chắc chắn có một lý do cho nó mà không sử dụng từ "bandwagon"!
Hmmm có lẽ chúng ta đang nói về các loại đối tượng nhị phân khác nhau - LINQ trả về một đối tượng System.Data.Linq.Binary không có phương thức Read(): ( – joshcomley
Xin lỗi, tôi hiểu lầm mẫu mã của bạn và nghĩ rằng fileStreamBinary là một stream ... Tôi không quen thuộc với System.Data.Linq.Binary, nhưng nó có vẻ là lấy toàn bộ bộ đệm cùng một lúc, vì vậy bạn không thể tránh tải nó trong bộ nhớ. Vì vậy, tôi sợ mã bạn tìm thấy "xấu xí" là cách duy nhất ... –
Có vẻ như tôi có thể phải phá vỡ LINQ khi sử dụng FILESTREAM sau đó. Có vẻ ngớ ngẩn khi thấy toàn bộ điểm của FILESTREAM là cho phép siêu nhanh trực tiếp từ đĩa trực tuyến! – joshcomley