2010-02-02 27 views
10

Tôi đang phân phát tệp từ Amazon S3 ngay bây giờ và tôi tạo URL an toàn bằng API. Hoạt động tốt ở mọi nơi ngoại trừ những người tải xuống các tệp .exe trong IE. Tôi đã thử nghiệm điều này trên IE 8 và 7.Internet Explorer loại bỏ phần mở rộng .exe khỏi tải xuống khi được theo sau bởi tham số URL

Nếu chạy máy chủ web cục bộ, bạn có thể kiểm tra bằng cách đặt notepad.exe vào thư mục gốc web của bạn. Chuyển đến http://localhost/notepad.exe (hoặc tương đương) Bây giờ hãy thử http://localhost/notepad.exe?

Nó sẽ lưu tệp dưới dạng notepad, không có phần mở rộng. Đây có phải là một 'tính năng' vì googling nó là đến với không có gì. Nhờ toàn bộ vấn đề của các phần mở rộng của IE, bạn không thể tìm kiếm bất cứ điều gì về phần mở rộng tập tin.

Ngoài ra, nếu tệp có nhiều dấu chấm trong tên, đôi khi nó được thêm [1] hoặc [] vào cuối.

Bất kỳ ý tưởng nào? Tài liệu về hành vi khủng khiếp này? Nó có vẻ như nó phải là một tính năng bảo mật, nhưng tôi vẫn chưa tìm thấy một tùy chọn để vô hiệu hóa nó.

Và như mọi khi, cảm ơn bạn. Tim

Trả lời

6

Có một câu chuyện dài ở đây, nhưng cách giải quyết đơn giản là để làm điều này:

http://www.example.com/dl/test.exe?mysecret=12321412&FixForIE=.exe

Đối với các dấu [1] hoặc có điều gì, không, không có thực sự bất cứ điều gì bạn có thể làm về nếu người dùng xảy ra đã tải xuống từ URL đó trước đó.

+5

gì !? Trong tên của Trident, tôi yêu cầu câu chuyện dài! – aaaidan

12

Chúng tôi đã gặp sự cố tương tự khi phân phát tệp từ S3. Hóa ra bạn cần phải thiết lập đúng cách bố trí nội dung cho IE để xử lý các tệp một cách chính xác. Cụ thể, tiêu đề HTTP

Nội dung-Bố trí: tệp đính kèm; filename = "text.exe"

Bài viết này mô tả một chi tiết nhỏ hơn: http://www.jtricks.com/bits/content_disposition.html

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