2012-04-15 41 views
20

Để thao tác dễ dàng các hình ảnh khác nhau trên phía máy khách với Javascript, tôi đã viết một hàm ở phía máy chủ (trong VB 2010) để chuyển đổi tệp thành chuỗi base64 mà tôi gửi cho khách hàng.Hiển thị ảnh Internet Explorer và Base64

Khi tôi thử nó trong Internet Explorer 8.0 với 3 hình ảnh khác nhau, 1 ảnh chân dung và 2 phong cảnh, tôi nhận ra rằng chỉ có hình ảnh chân dung được hiển thị hoàn toàn, trong khi cả hình ảnh ngang đều bị cắt ngắn (tôi có thể thấy phần trên của hình ảnh).

Tôi nghĩ rằng tôi đã có một lỗi trong chức năng chuyển đổi của mình, cho đến khi tôi thử trang địa phương của mình bằng Firefox: mọi hình ảnh được Firefox hiển thị hoàn hảo.

Vì vậy, có câu hỏi của tôi: Đây có phải là lỗi nổi tiếng của Internet Explorer không? Nếu câu trả lời là có, Có biện pháp khắc phục nổi tiếng nào cho lỗi nổi tiếng đó không?

+3

Liên kết đến trang thử nghiệm của bạn? – Marcel

+3

Đây là một lỗi nổi tiếng, IE có giới hạn ký tự được áp đặt trên tất cả các URI, có nghĩa là các URI của Lược đồ dữ liệu sẽ bị cắt bớt một số nội dung. –

+0

Ngoài nhận xét của Andrew Dunn, bạn nên sử dụng hệ thống tệp hoặc cơ sở dữ liệu (như SQL 2008 mà bạn đã dành riêng để phân phát hình ảnh). Tôi không nghĩ rằng bạn sẽ đến gần với nén các giao thức như jpg, gif, png. Ngoài ra tôi đã tìm thấy bằng cách sử dụng một nhà cung cấp đường dẫn ảo để phục vụ lên hình ảnh từ một dB là chậm hơn nhiều so với một hệ thống tập tin vì vậy tôi khuyên bạn nên xem xét lại thiết kế của bạn. –

Trả lời

14

IE8 chỉ có thể làm hình ảnh URI Base64 có kích thước tối đa 32kb. Đó là một giới hạn gây phiền nhiễu nhẹ, nhưng bạn vẫn có thể nhận được bằng các biểu tượng/v.v. Hãy nhớ rằng hình ảnh được mã hóa Base64 trung bình hơn 33% dữ liệu được gửi xuống đường ống, vì vậy nó ... eh, bạn biết đấy, hãy sử dụng phán đoán của bạn.

Đối với bất cứ ai quan tâm, nó cũng có thể để thực hiện những công việc trong IE6/7 (không có, tôi có thể thêm, rằng giới hạn 32kb ...): http://venodesigns.net/2010/06/17/you-got-your-base64-in-my-css/

+0

cảm ơn câu trả lời của bạn. Vâng, bạn có nghĩa là mã hóa base64 là vô ích trong trường hợp của tôi? Tôi có thể chỉ gửi hình ảnh jpeg như một chuỗi đơn giản và khai báo chuỗi đó như tôi làm cho base64, chỉ cần thay thế "BB

Các vấn đề liên quan