Đây là hướng dẫn về cách lấy kích thước của tệp bằng PHP. Trong hướng dẫn này, chúng ta sẽ lấy kích thước của tệp theo byte bằng cách sử dụng chức năng kích thước tệp của PHP trước khi chuyển đổi các byte đó thành KB, MB và GB, thân thiện với con người hơn nhiều Show Hàm kích thước tệp của PHPHàm kích thước tệp của PHP nhận một tham số. Một tham số chuỗi có tên là $filename, chứa đường dẫn đến tệp Hãy xem ví dụ sau //The path to our file. $file = 'photograph.jpg'; //Get the file size in bytes using PHP's filesize function. $fileSizeBytes = filesize($file); //In my case, the file was 269,708 bytes in size. var_dump($fileSizeBytes); Đoạn mã trên giả định rằng tệp “photograph. jpg” nằm trong cùng thư mục với tập lệnh PHP của chúng tôi Nếu tệp của chúng tôi nằm trong một thư mục khác có tên là hình ảnh, chúng tôi có thể sử dụng đường dẫn tương đối sau //A relative path. $file = '../images/photograph.jpg'; //Get the file size in bytes. $fileSizeBytes = filesize($file); Lưu ý rằng hàm kích thước tệp cũng sẽ chấp nhận đường dẫn tuyệt đối đến tệp //Using an absolute path. $file = 'C:\wamp\www\photograph.jpg'; //Get the file size in bytes. $fileSizeBytes = filesize($file); Nếu hàm kích thước tệp được cung cấp một đường dẫn tệp không chính xác, nó sẽ đưa ra cảnh báo sau
Chức năng kích thước tệp của PHP sử dụng lệnh stat cơ bản của hệ thống để lấy kích thước của tệp được đề cập Lấy kích thước tệp tính bằng KBNếu bạn chủ yếu xử lý hình ảnh hoặc các tệp nhỏ khác, bạn có thể muốn chuyển đổi byte thành KB (kilobyte) Thí dụ //Relative path to our file. $file = 'photograph.jpg'; //Get the file size in bytes. $fileSizeBytes = filesize($file); //Convert the bytes into KB. $fileSizeKB = round($fileSizeBytes / 1024); //269,708 bytes divided by 1024 results in 263 KB var_dump($fileSizeKB); Trong đoạn mã trên, chúng tôi đã lấy kích thước của tệp theo byte và sau đó chia kết quả cho 1024. Điều này là do có khoảng 1024 byte trong mỗi kilobyte Lấy kích thước tệp tính bằng MBMB (megabyte) là một số liệu hữu ích nếu bạn đang xử lý các tệp MP3, Tệp Zip, PDF hoặc các tệp tương đối lớn khác Một ví dụ về nhận kích thước của tệp tính bằng MB //Path to our file. $file = 'photograph.jpg'; //Get the file size in bytes. $fileSizeBytes = filesize($file); //Convert the bytes into MB. $fileSizeMB = ($fileSizeBytes / 1024 / 1024); //269,708 bytes is 0.2572135925293 MB var_dump($fileSizeMB); //Format it so that only 2 decimal points are displayed. $fileSizeMB = number_format($fileSizeMB, 2); //It now becomes 0.26 MB. var_dump($fileSizeMB); Trong PHP ở trên, chúng tôi
Trong trường hợp của tôi, “bức ảnh. jpg” có kích thước 269.708 byte, trở thành 0. 26 MB Sử dụng PHP để lấy kích thước tệp tính bằng GBNếu bạn đang xử lý các tệp lớn như video, bạn có thể muốn sử dụng GB (gigabyte) //The path to our file. $file = 'large-file.mp4'; //Get the file size in bytes. $fileSizeBytes = filesize($file); //Convert the bytes into GB. $fileSizeGB = ($fileSizeBytes / 1024 / 1024 / 1024); var_dump($fileSizeGB); Trong mẫu mã ở trên, chúng tôi đã chuyển đổi byte thành GB bằng cách chia kết quả của kích thước tệp cho 1024 ba lần kích thước tệp sẽ không hoạt động với các tệp từ xaChức năng kích thước tệp sẽ không hoạt động với các tệp từ xa. Nếu bạn cố gắng lấy kích thước của một tệp từ xa bằng chức năng kích thước tệp, nó sẽ đưa ra cảnh báo sau
Điều này là do lệnh stat cơ bản không hỗ trợ các tệp từ xa. Nhìn thấy. Nhận kích thước của tệp từ xa bằng PHP Nó thực hiện điều này theo byte theo mặc định, nhưng với một chút mày mò, chúng ta có thể dễ dàng chuyển đổi điều này thành kilobyte hoặc megabyte Trước tiên hãy xem cách nó hoạt động theo byte $file = '/path/to/your/file'; $filesize = filesize($file); echo "The size of your file is $filesize bytes."; Chuyển đổi byte thành kilobyte hoạt động bằng cách chia giá trị cho 1024. PHP rất chính xác và sẽ cung cấp cho bạn 12 chữ số thập phân – có lẽ hơi quá mức cần thiết. Để tránh điều này, chúng ta có thể sử dụng hàm round() và chỉ định số lượng chữ số chính xác mà chúng ta muốn hiển thị Sớm hay muộn trong các ứng dụng của bạn, bạn sẽ phải đối mặt với nhiệm vụ biết kích thước của tệp. Có rất nhiều ví dụ tại sao chúng ta cần biết kích thước của tệp và một trong những ví dụ đó có thể là khi bạn hoặc người dùng bắt đầu tải hình ảnh hoặc tệp nào đó lên máy chủ của mình và trước khi bắt đầu tải tệp này lên, bạn có thể đưa vào các điều kiệnTrong PHP, có hai tùy chọn về cách xem kích thước của tệp và chúng ta sẽ xem xét chúng hôm nay.
Trong biến thể đầu tiên, chúng tôi sẽ sử dụng chức năng kích thước tệp. Hàm kích thước tệp chỉ nhận một tham số bắt buộc, tên tệp. Hàm trả về kích thước của tệp theo byte. Trong trường hợp có lỗi, nó sẽ trả về FALSE và tạo ra lỗi cấp độ E_WARNING ________số 8 Trong ví dụ này, chúng tôi lấy kích thước của it-inzhener. png và kết quả là 105478 byte Lấy kích thước tệp theo byte rất bất tiện và do đó chúng ta có thể tạo một hàm sẽ chuyển đổi byte thành các giá trị khác cho chúng ta
Hàm lấy kích thước theo byte và trả về kích thước theo các giá trị khác. Hàm chuyển đổi byte thành giá trị mong muốn, dựa trên kích thước của chính tệp
Tùy chọn tiếp theo để lấy kích thước tệp là sử dụng một lớp php đặc biệt có tên là SplFileInfo. Trước tiên, chúng ta cần tạo một đối tượng của lớp này và truyền chính tệp đó cho hàm tạo của nó, sau đó chúng ta cần thực thi phương thức của lớp này có tên là getSize. Phương thức getSize trả về kích thước của tệp, cũng tính bằng byte và trong trường hợp có bất kỳ lỗi nào, phương thức này sẽ trả về FALSE
|