2011-02-04 29 views
6

Tôi muốn hiểu điều gì xảy ra dưới mui xe khi bạn tải lên web.Làm thế nào để tải lên tệp HTTP làm việc nội bộ trong IIS?

Tôi đoán một trong những:

  1. Các tập tin được nạp vào bộ nhớ của trình duyệt, gửi đến máy chủ web bộ nhớ đệm, và sau đó ứng dụng sẽ được thông báo để thu thập nó.
  2. Tệp đang được trình duyệt đọc và đồng thời được gửi tới máy chủ web, có thể bắt đầu lưu các byte một cách progresively.

Tôi đã cố tải lên một tệp rất lớn và đặt điểm ngắt trên đường thẳng đứng của phương thức nhận tải lên. Tôi đã thấy cách trình duyệt toke rất nhiều thời gian tải ... nhưng breakpoint vẫn không trúng, và sau một thời gian breakpoint là hit.

Tôi muốn hiểu điều này, bởi vì trong trường hợp xấu nhất, nếu tôi cho phép tải lên lớn, họ có thể làm nổ bộ nhớ máy chủ tại một số điểm.

Điều gì sẽ xảy ra nếu tôi tải lên tệp 2Gb? (xem xét máy chủ web/ứng dụng chấp nhận độ dài đó) sẽ mất 2Gb bộ nhớ máy chủ?

Chúc mừng.

+2

Tôi sẽ rất ngạc nhiên nếu nó không truyền tải nó đến một tệp tạm thời khi nó vượt qua một kích thước nhất định, bất kể khi nào người tiêu dùng được thông báo, nhưng tôi không có một tham chiếu cho điều đó. – Rup

+0

đúng, nó sẽ có ý nghĩa hoàn hảo. Có lẽ tôi nên hỏi trong diễn đàn IIS/Apache vì có thể là một câu hỏi rất cụ thể. – vtortola

+1

Ồ, có đủ loại ở đây - tôi mong ai đó sẽ biết :-) – Rup

Trả lời

4

Các tài liệu cho lớp HttpPostedFile (đại diện cho một tập tin tải lên máy chủ trong ASP.NET) quy định cụ thể:

tập tin được tải lên trong MIME định dạng multipart/form-data. Theo mặc định, , tất cả các yêu cầu, bao gồm các trường mẫu và các tệp đã tải lên, lớn hơn 256 KB được lưu vào đĩa, thay vì so với được lưu trữ trong bộ nhớ máy chủ.

+0

Cảm ơn. Tôi thậm chí còn không nghĩ đến việc đó! :) – vtortola

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