2009-12-17 34 views
14

Có giới hạn về mặt lý thuyết về kích thước tệp có thể được tải lên bởi ứng dụng khách bằng cách sử dụng tải lên tệp của trình duyệt bằng biểu mẫu HTML không?Giới hạn tải lên tệp trong HTTP

Tôi đang tạo điều này vì Flash có nhược điểm trong đó kích thước tệp lớn nhất bạn có thể tải lên nhỏ hơn kích thước của RAM có sẵn. Tôi tự hỏi nếu có bất kỳ hạn chế nào như vậy với các trình duyệt ...

+2

Thú vị. AFAIK, không có giới hạn phía máy khách như vậy. Bạn có liên kết cho vấn đề Flash không? –

Trả lời

11

Nếu tệp của bạn tải lên lớn hơn 2Gb, bạn sẽ gặp sự cố với tải lên HTTP.

Giới hạn "RAM có sẵn" cho thấy rằng dữ liệu tệp đang được hút tất cả vào bộ nhớ, rất kém hiệu quả đặc biệt là khi kích thước tệp tăng lên. Các luồng có hiệu quả hơn nhiều cho việc này.

2

Tôi cho rằng điều đó phụ thuộc vào máy chủ nhận được yêu cầu, cả cài đặt và cách thức nhận được triển khai. Apache có thể có một thực hiện khác nhau của kết thúc nhận từ IIS. Về phía máy khách, tập tin được đọc từ đĩa (một lần nữa điều này sẽ phụ thuộc vào trình duyệt mà máy khách đang sử dụng và cách trình duyệt đó được triển khai) nên không nên có. Tôi không biết liệu điều này có được đề cập trong tài liệu của IE hay không.

4

BranTheMan là chính xác, tôi nhấn vấn đề này một vài năm trước đây và chúng tôi đã giải mã các bit của ASP.NET và thấy rằng nó sẽ lấy tệp và đặt nó vào một mảng byte. Vì vậy, bạn không thể có được xung quanh này.

Có thể với phần cứng 64 bit, bạn có thể vượt quá giới hạn 2GB, nhưng .. 2GB là khá nhiều anyways nên có thể đủ.

Sự cố bạn có thể gặp phải là nếu nhiều người tải lên tệp lớn. ví dụ: 100 người tải lên 20 meg tệp vì quá trình không thể phân bổ nhiều hơn 2GB trên máy chủ 32 bit chuẩn. (không có thay đổi cấu hình)

3

Here là kết quả của nghiên cứu liên quan đến việc tải lên tùy thuộc vào trình duyệt web.

Hiện tại, chỉ Google Chrome & Opera có thể tải lên nhiều hơn 4GB.

+0

Xin cảm ơn tất cả. Giải quyết. – user2307087

+0

Bạn được chào đón! :) – PixEye

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