2011-07-01 28 views
7

Tôi đã đặt giới hạn tải lên thành 3M trong php.ini. Nếu ai đó tải lên một tệp có dung lượng 50 mb thì tải lên có dừng lại khi nó đạt đến 3Mb hay không tiếp tục cho đến khi quá trình tải lên hoàn tất, sau đó đọc tệp và xóa tệp?Tải lên php và băng thông/câu hỏi giao thông

+1

ngay sau khi đạt đến 3 nó sẽ dừng lại. bạn nên kiểm tra nó – Ibu

+0

@Ibu: Bạn đang sử dụng máy chủ nào? Không thể sao chép kết quả của bạn trên Apache: ( – Piskvor

+0

apache * chính nó * có giới hạn về kích thước bài đăng. Có thể là trường hợp đó? –

Trả lời

5

Nếu bạn đang sử dụng Apache làm máy chủ web của mình, thì PHP sẽ không có cơ hội để bắt đầu cho đến khi yêu cầu hoàn tất. Do đó, giới hạn tải lên chỉ có hiệu lực sau khi toàn bộ quá trình tải lên hoàn tất. Apache trước tiên chỉ nhận được toàn bộ yêu cầuchỉ sau đó nó gọi trình xử lý thích hợp (trong trường hợp này là PHP). Vì không có cơ chế phía máy chủ nào để hủy yêu cầu HTTP đang tiến hành trả về một phản hồi, bạn sẽ cần đợi cho đến khi toàn bộ yêu cầu hoàn tất.

Vì vậy, để trả lời câu hỏi của bạn: NO, quá trình tải lên sẽ hoàn tất; Logic nội bộ của PHP sẽ kiểm tra kích thước tệp đã tải lên, thấy rằng nó lớn hơn giới hạn và sau đó không thành công với lỗi. Tập lệnh PHP của bạn sẽ không phải có cơ hội để chạy, do đó, không dựa vào kiểm tra thời gian chạy - chúng sẽ không được thực thi chút nào.

+0

Sau đó, ai đó thực sự có thể lạm dụng bạn và hủy hoại băng thông hàng tháng của bạn hoặc làm hỏng tài chính của bạn tải lên các tệp lớn không ngừng để bạn lãng phí lưu lượng truy cập phải không? bạn phải trả 0,10 cent cho tôi bằng AWS. Làm thế nào để bạn ngăn chặn chúng tốt nhất khi tải lên các tệp lớn vượt quá giới hạn? – BlackBrother

+0

@BlackBrother: vâng, đó là (ít nhất về mặt lý thuyết) Tôi không biết cách ngăn chặn điều đó, ngoại trừ việc chặn địa chỉ IP lạm dụng đó. Tài liệu hướng dẫn cấu hình của Apache 'LimitRequestBody' cho thấy rằng nó có thể hữu ích ở đây: http://httpd.apache.org/docs/2.0 /mod/core.htm l # limitrequestbody – Piskvor

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