CFSDN nhấn mạnh vào việc tạo ra giá trị thông qua mã nguồn mở. Chúng tôi cam kết xây dựng một nền tảng chia sẻ tài nguyên để mọi người làm CNTT có thể tìm thấy thế giới tuyệt vời của riêng mình tại đây.
Bài đăng trên blog CFSDN này giúp PHP cung cấp mã tải tệp nhanh hơn do tác giả thu thập và sắp xếp. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.
Tuy nhiên, bằng cách này, chúng ta không thể thực hiện một số thống kê, kiểm tra quyền, v.v. Do đó, nhiều khi chúng ta sử dụng PHP để chuyển tiếp và cung cấp tệp tải xuống cho người dùng.
Sao chép mã như sau
Nhưng có một vấn đề với điều này. Nếu tên tệp bằng tiếng Trung, một số người dùng có thể nhận được ký tự bị méo mó trong tên tệp sau khi tải xuống. Vì vậy, chúng tôi thực hiện một số thay đổi (tham khảo: : .
Sao chép mã như sau
Vâng, giờ trông nó tốt hơn nhiều rồi, nhưng vẫn còn một vấn đề, đó là readfile. Mặc dù readfile của PHP cố gắng hiệu quả nhất có thể và không chiếm bộ nhớ riêng của PHP, nhưng thực tế nó vẫn cần sử dụng MMAP (nếu được hỗ trợ) hoặc bộ đệm cố định để lặp qua tệp và xuất trực tiếp. Khi xuất, nếu là Apache + PHP mod, nó cũng cần được gửi đến bộ đệm đầu ra của Apache. Cuối cùng, nó được gửi đến người dùng. Còn đối với Nginx + fpm, nếu chúng được triển khai riêng biệt, nó sẽ mang lại IO mạng bổ sung. Vậy, có thể để Webserver gửi tệp trực tiếp đến người dùng mà không cần thông qua lớp PHP không?
Hôm nay, tôi thấy một bài viết thú vị: Cách tôi PHP: X-SendFile.
Chúng ta có thể sử dụng mô-đun mod_xsendfile của Apache để cho phép Apache gửi tệp này trực tiếp đến người dùng: .
Sao chép mã như sau
Tiêu đề X-Sendfile sẽ được xử lý bởi Apache và tệp phản hồi sẽ được gửi trực tiếp đến Client. Lighttpd và Nginx cũng có các mô-đun tương tự. Nếu bạn quan tâm, bạn có thể tìm kiếm chúng.
Cuối cùng, bài viết này về mã cho phép PHP cung cấp tốc độ tải xuống tệp nhanh hơn ở đây. Nếu bạn muốn biết thêm về mã cho phép PHP cung cấp tốc độ tải xuống tệp nhanh hơn, vui lòng tìm kiếm các bài viết trên CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!