Cách lấy đường dẫn file trong php
Laravel cung cấp khả năng trừu tượng hóa hệ thống tệp mạnh mẽ nhờ gói Flysystem PHP tuyệt vời của Frank de Jonge. Tích hợp Laravel Flysystem cung cấp các trình điều khiển đơn giản để làm việc với các hệ thống tệp cục bộ, SFTP và Amazon S3. Thậm chí tốt hơn, thật đơn giản để chuyển đổi giữa các tùy chọn lưu trữ này giữa máy phát triển cục bộ và máy chủ sản xuất của bạn vì API vẫn giữ nguyên cho mỗi hệ thống Show
Cấu hìnhTệp cấu hình hệ thống tệp của Laravel được đặt tại ________ 03. Trong tệp này, bạn có thể định cấu hình tất cả các "đĩa" hệ thống tệp của mình. Mỗi đĩa đại diện cho một trình điều khiển lưu trữ và vị trí lưu trữ cụ thể. Các cấu hình ví dụ cho từng trình điều khiển được hỗ trợ được bao gồm trong tệp cấu hình để bạn có thể sửa đổi cấu hình để phản ánh tùy chọn lưu trữ và thông tin xác thực của mình Trình điều khiển 4 tương tác với các tệp được lưu trữ cục bộ trên máy chủ chạy ứng dụng Laravel trong khi trình điều khiển 5 được sử dụng để ghi vào dịch vụ lưu trữ đám mây S3 của Amazon
Trình điều khiển địa phươngKhi sử dụng trình điều khiển 4, tất cả các hoạt động của tệp đều liên quan đến thư mục 7 được xác định trong tệp cấu hình 8 của bạn. Theo mặc định, giá trị này được đặt vào thư mục 9. Do đó, phương pháp sau đây sẽ ghi vào 0________số 8đĩa công cộngĐĩa 1 có trong tệp cấu hình 8 của ứng dụng của bạn dành cho các tệp sẽ được truy cập công khai. Theo mặc định, đĩa 1 sử dụng trình điều khiển 4 và lưu trữ các tệp của nó trong 5Để làm cho các tệp này có thể truy cập được từ web, bạn nên tạo một liên kết tượng trưng từ 6 đến 5. Việc sử dụng quy ước thư mục này sẽ giữ các tệp có thể truy cập công khai của bạn trong một thư mục có thể dễ dàng chia sẻ qua các lần triển khai khi sử dụng các hệ thống triển khai không có thời gian ngừng hoạt động như EnvoyerĐể tạo liên kết tượng trưng, bạn có thể sử dụng lệnh Artisan 8Khi tệp đã được lưu trữ và liên kết tượng trưng đã được tạo, bạn có thể tạo URL tới tệp bằng trình trợ giúp 9 8Bạn có thể định cấu hình các liên kết tượng trưng bổ sung trong tệp cấu hình 8 của mình. Mỗi liên kết được định cấu hình sẽ được tạo khi bạn chạy lệnh 8 1Điều kiện tiên quyết của trình điều khiểnCấu hình trình điều khiển S3Trước khi sử dụng trình điều khiển S3, bạn sẽ cần cài đặt gói Flysystem S3 thông qua trình quản lý gói Composer 2Thông tin cấu hình trình điều khiển S3 nằm trong tệp cấu hình 3 của bạn. Tệp này chứa một mảng cấu hình ví dụ cho trình điều khiển S3. Bạn có thể tự do sửa đổi mảng này với thông tin đăng nhập và cấu hình S3 của riêng mình. Để thuận tiện, các biến môi trường này khớp với quy ước đặt tên mà AWS CLI sử dụngCấu hình trình điều khiển FTPTrước khi sử dụng trình điều khiển FTP, bạn cần cài đặt gói Flysystem FTP thông qua trình quản lý gói Composer 4Tích hợp Flysystem của Laravel hoạt động tốt với FTP; . Nếu bạn cần định cấu hình hệ thống tệp FTP, bạn có thể sử dụng ví dụ cấu hình bên dưới
Cấu hình trình điều khiển SFTPTrước khi sử dụng trình điều khiển SFTP, bạn cần cài đặt gói Flysystem SFTP thông qua trình quản lý gói Composer
Tích hợp Flysystem của Laravel hoạt động tốt với SFTP; . Nếu bạn cần định cấu hình hệ thống tệp SFTP, bạn có thể sử dụng ví dụ cấu hình bên dưới 5Hệ thống tệp có phạm vi và chỉ đọcCác đĩa có phạm vi cho phép bạn xác định một hệ thống tệp trong đó tất cả các đường dẫn được tự động thêm tiền tố vào một tiền tố đường dẫn nhất định. Trước khi tạo đĩa hệ thống tệp có phạm vi, bạn sẽ cần cài đặt gói Flysystem bổ sung thông qua trình quản lý gói Composer 0Bạn có thể tạo một phiên bản có phạm vi đường dẫn của bất kỳ đĩa hệ thống tệp hiện có nào bằng cách xác định một đĩa sử dụng trình điều khiển 55. Ví dụ: bạn có thể tạo một đĩa có phạm vi đĩa 5 hiện có của bạn thành một tiền tố đường dẫn cụ thể, sau đó mọi thao tác tệp sử dụng đĩa được xác định phạm vi của bạn sẽ sử dụng tiền tố đã chỉ định 3Đĩa "chỉ đọc" cho phép bạn tạo các đĩa hệ thống tệp không cho phép thao tác ghi. Trước khi sử dụng tùy chọn cấu hình 57, bạn sẽ cần cài đặt gói Flysystem bổ sung thông qua trình quản lý gói Composer 80Tiếp theo, bạn có thể bao gồm tùy chọn cấu hình 57 trong một hoặc nhiều mảng cấu hình của đĩaHệ thống tập tin tương thích Amazon S3Theo mặc định, tệp cấu hình 8 của ứng dụng chứa cấu hình đĩa cho đĩa 5. Ngoài việc sử dụng đĩa này để tương tác với Amazon S3, bạn có thể sử dụng nó để tương tác với bất kỳ dịch vụ lưu trữ tệp tương thích với S3 nào, chẳng hạn như MinIO hoặc DigitalOcean SpacesThông thường, sau khi cập nhật thông tin đăng nhập của đĩa để khớp với thông tin đăng nhập của dịch vụ bạn định sử dụng, bạn chỉ cần cập nhật giá trị của tùy chọn cấu hình 01. Giá trị của tùy chọn này thường được xác định thông qua biến môi trường 02 81Lấy phiên bản đĩaMặt tiền 03 có thể được sử dụng để tương tác với bất kỳ đĩa nào được định cấu hình của bạn. Ví dụ: bạn có thể sử dụng phương pháp 04 trên mặt tiền để lưu hình đại diện trên đĩa mặc định. Nếu bạn gọi các phương thức trên mặt tiền 03 mà không gọi phương thức 06 trước, thì phương thức đó sẽ tự động được chuyển vào đĩa mặc định 82Nếu ứng dụng của bạn tương tác với nhiều đĩa, bạn có thể sử dụng phương pháp 06 trên mặt tiền 03 để làm việc với các tệp trên một đĩa cụ thể 83Đĩa theo yêu cầuĐôi khi, bạn có thể muốn tạo một đĩa trong thời gian chạy bằng cách sử dụng một cấu hình nhất định mà không có cấu hình đó thực sự có trong tệp cấu hình 8 của ứng dụng của bạn. Để thực hiện điều này, bạn có thể truyền một mảng cấu hình cho phương thức 31 của mặt tiền 03 84Truy xuất tệpPhương thức 32 có thể được sử dụng để truy xuất nội dung của tệp. Nội dung chuỗi thô của tệp sẽ được phương thức trả về. Hãy nhớ rằng, tất cả các đường dẫn tệp phải được chỉ định tương ứng với vị trí "gốc" của đĩa 85Phương pháp 33 có thể được sử dụng để xác định xem tệp có tồn tại trên đĩa không 86Phương pháp 34 có thể được sử dụng để xác định xem một tệp có bị thiếu trong đĩa không 87Tải tập tinPhương pháp 35 có thể được sử dụng để tạo phản hồi buộc trình duyệt của người dùng tải xuống tệp tại đường dẫn đã cho. Phương thức 35 chấp nhận tên tệp làm đối số thứ hai cho phương thức, sẽ xác định tên tệp mà người dùng tải xuống tệp nhìn thấy. Cuối cùng, bạn có thể chuyển một mảng các tiêu đề HTTP làm đối số thứ ba cho phương thức 88URL tệpBạn có thể sử dụng phương pháp 37 để lấy URL cho một tệp nhất định. Nếu bạn đang sử dụng trình điều khiển 4, trình điều khiển này thường sẽ chỉ thêm 39 vào trước đường dẫn đã cho và trả về một URL tương đối cho tệp. Nếu bạn đang sử dụng trình điều khiển 5, URL từ xa đủ điều kiện sẽ được trả về 89Khi sử dụng trình điều khiển 4, tất cả các tệp có thể truy cập công khai phải được đặt trong thư mục 5. Hơn nữa, bạn nên tạo một liên kết tượng trưng tại 6 trỏ đến thư mục 5
URL tạm thờiSử dụng phương pháp 807, bạn có thể tạo các URL tạm thời cho các tệp được lưu trữ bằng trình điều khiển 5. Phương thức này chấp nhận một đường dẫn và một phiên bản 809 chỉ định khi nào URL sẽ hết hạn 10Nếu bạn cần chỉ định các tham số yêu cầu S3 bổ sung, bạn có thể chuyển mảng các tham số yêu cầu làm đối số thứ ba cho phương thức 807 11Nếu bạn cần tùy chỉnh cách tạo các URL tạm thời cho một đĩa lưu trữ cụ thể, bạn có thể sử dụng phương pháp 811. Ví dụ: điều này có thể hữu ích nếu bạn có bộ điều khiển cho phép bạn tải xuống các tệp được lưu trữ qua đĩa thường không hỗ trợ URL tạm thời. Thông thường, phương thức này nên được gọi từ phương thức 812 của nhà cung cấp dịch vụ 12Tùy chỉnh máy chủ URLNếu bạn muốn xác định trước máy chủ lưu trữ cho các URL được tạo bằng cách sử dụng mặt tiền 03, bạn có thể thêm tùy chọn 37 vào mảng cấu hình của đĩa 13Siêu dữ liệu tệpNgoài việc đọc và ghi tệp, Laravel cũng có thể cung cấp thông tin về chính tệp. Ví dụ: phương pháp 815 có thể được sử dụng để lấy kích thước của tệp theo byte 14Phương thức 816 trả về dấu thời gian UNIX của lần cuối cùng tệp được sửa đổi 15Đường dẫn tệpBạn có thể sử dụng phương pháp 817 để lấy đường dẫn cho một tệp nhất định. Nếu bạn đang sử dụng trình điều khiển 4, điều này sẽ trả về đường dẫn tuyệt đối tới tệp. Nếu bạn đang sử dụng trình điều khiển 5, phương thức này sẽ trả về đường dẫn tương đối tới tệp trong bộ chứa S3 16Lưu trữ tập tinPhương pháp 04 có thể được sử dụng để lưu trữ nội dung tệp trên đĩa. Bạn cũng có thể chuyển một PHP 821 cho phương thức 04, phương thức này sẽ sử dụng hỗ trợ luồng cơ bản của Flysystem. Hãy nhớ rằng, tất cả các đường dẫn tệp phải được chỉ định tương ứng với vị trí "gốc" được định cấu hình cho đĩa 17Viết không thành côngNếu phương thức 04 (hoặc các thao tác "ghi") không thể ghi tệp vào đĩa, thì 824 sẽ được trả về 18Nếu muốn, bạn có thể xác định tùy chọn 825 trong mảng cấu hình của đĩa hệ thống tệp của mình. Khi tùy chọn này được xác định là 826, các phương thức "ghi" chẳng hạn như 04 sẽ đưa ra một phiên bản của 828 khi thao tác ghi không thành côngChuẩn bị và thêm vào tệpCác phương thức 829 và 830 cho phép bạn ghi vào đầu hoặc cuối tệp 19Sao chép & Di chuyển tệpPhương pháp 831 có thể được sử dụng để sao chép tệp hiện có sang vị trí mới trên đĩa, trong khi phương pháp 832 có thể được sử dụng để đổi tên hoặc di chuyển tệp hiện có sang vị trí mới 20Truyền phát tự độngTruyền tệp đến bộ lưu trữ giúp giảm đáng kể mức sử dụng bộ nhớ. Nếu bạn muốn Laravel tự động quản lý truyền trực tuyến một tệp nhất định đến vị trí lưu trữ của mình, bạn có thể sử dụng phương thức 833 hoặc 834. Phương thức này chấp nhận phiên bản 835 hoặc 836 và sẽ tự động truyền tệp đến vị trí mong muốn của bạn 21Có một vài điều quan trọng cần lưu ý về phương pháp 833. Lưu ý rằng chúng tôi chỉ chỉ định tên thư mục chứ không phải tên tệp. Theo mặc định, phương thức 833 sẽ tạo một ID duy nhất để dùng làm tên tệp. Phần mở rộng của tệp sẽ được xác định bằng cách kiểm tra loại MIME của tệp. Đường dẫn đến tệp sẽ được trả về bằng phương thức 833 để bạn có thể lưu trữ đường dẫn, bao gồm tên tệp đã tạo, trong cơ sở dữ liệu của mìnhCác phương thức 833 và 834 cũng chấp nhận một đối số để chỉ định "khả năng hiển thị" của tệp được lưu trữ. Điều này đặc biệt hữu ích nếu bạn đang lưu trữ tệp trên ổ đĩa đám mây, chẳng hạn như Amazon S3 và muốn tệp có thể truy cập công khai qua các URL được tạo 22Tải lên tệpTrong các ứng dụng web, một trong những trường hợp sử dụng phổ biến nhất để lưu trữ tệp là lưu trữ các tệp do người dùng tải lên như ảnh và tài liệu. Laravel giúp dễ dàng lưu trữ các tệp đã tải lên bằng cách sử dụng phương pháp 842 trên một phiên bản tệp đã tải lên. Gọi phương thức 842 với đường dẫn mà bạn muốn lưu trữ tệp đã tải lên 23Có một vài điều quan trọng cần lưu ý về ví dụ này. Lưu ý rằng chúng tôi chỉ chỉ định tên thư mục, không phải tên tệp. Theo mặc định, phương thức 842 sẽ tạo một ID duy nhất để dùng làm tên tệp. Phần mở rộng của tệp sẽ được xác định bằng cách kiểm tra loại MIME của tệp. Đường dẫn đến tệp sẽ được trả về bằng phương thức 842 để bạn có thể lưu trữ đường dẫn, bao gồm tên tệp đã tạo, trong cơ sở dữ liệu của mìnhBạn cũng có thể gọi phương thức 833 trên mặt tiền 03 để thực hiện thao tác lưu trữ tệp tương tự như ví dụ trên 24Chỉ định tên tệpNếu bạn không muốn tên tệp được gán tự động cho tệp được lưu trữ của mình, bạn có thể sử dụng phương thức 848, phương thức này nhận đường dẫn, tên tệp và đĩa (tùy chọn) làm đối số của nó 25Bạn cũng có thể sử dụng phương pháp 834 trên mặt tiền 03, phương thức này sẽ thực hiện thao tác lưu trữ tệp giống như ví dụ trên 26
Chỉ định một đĩaTheo mặc định, phương thức 842 của tệp đã tải lên này sẽ sử dụng đĩa mặc định của bạn. Nếu bạn muốn chỉ định một đĩa khác, hãy chuyển tên đĩa làm đối số thứ hai cho phương thức 842 27Nếu bạn đang sử dụng phương thức 848, bạn có thể chuyển tên đĩa làm đối số thứ ba cho phương thức 28Thông tin tệp đã tải lên khácNếu bạn muốn lấy tên gốc và phần mở rộng của tệp đã tải lên, bạn có thể làm như vậy bằng cách sử dụng phương pháp 855 và 856 29Tuy nhiên, hãy nhớ rằng các phương pháp 855 và 856 được coi là không an toàn, vì tên tệp và phần mở rộng có thể bị giả mạo bởi người dùng ác ý. Vì lý do này, bạn thường nên sử dụng các phương pháp 859 và 860 để lấy tên và phần mở rộng cho tệp đã tải lên 40Hiển thị tệpTrong tích hợp Flysystem của Laravel, "khả năng hiển thị" là sự trừu tượng hóa các quyền đối với tệp trên nhiều nền tảng. Các tệp có thể được khai báo 1 hoặc 862. Khi một tệp được khai báo là 1, bạn đang chỉ ra rằng tệp thường có thể truy cập được đối với những người khác. Ví dụ: khi sử dụng trình điều khiển S3, bạn có thể truy xuất URL cho tệp 1Bạn có thể đặt chế độ hiển thị khi ghi tệp qua phương thức 04 41Nếu tệp đã được lưu trữ, khả năng hiển thị của tệp có thể được truy xuất và đặt thông qua các phương thức 866 và 867 42Khi tương tác với các tệp đã tải lên, bạn có thể sử dụng các phương pháp 868 và 869 để lưu trữ tệp đã tải lên với khả năng hiển thị 1 43Tệp cục bộ & Khả năng hiển thịKhi sử dụng trình điều khiển 4, khả năng hiển thị của 1 chuyển thành quyền ________ 1873 đối với thư mục và quyền ________ 1874 đối với tệp. Bạn có thể sửa đổi ánh xạ quyền trong tệp cấu hình 8 của ứng dụng của mình 44Xóa tập tinPhương thức 876 chấp nhận một tên tệp hoặc một mảng tệp để xóa 45Nếu cần, bạn có thể chỉ định đĩa mà tệp sẽ bị xóa khỏi đó 46thư mụcNhận tất cả các tệp trong một thư mụcPhương thức 877 trả về một mảng gồm tất cả các tệp trong một thư mục nhất định. Nếu bạn muốn truy xuất danh sách tất cả các tệp trong một thư mục nhất định bao gồm tất cả các thư mục con, bạn có thể sử dụng phương thức 878 47Nhận tất cả các thư mục trong một thư mụcPhương thức 879 trả về một mảng gồm tất cả các thư mục trong một thư mục nhất định. Ngoài ra, bạn có thể sử dụng phương pháp 880 để lấy danh sách tất cả các thư mục trong một thư mục nhất định và tất cả các thư mục con của nó 48Tạo một thư mụcPhương thức 881 sẽ tạo thư mục đã cho, bao gồm mọi thư mục con cần thiết 49Xóa một thư mụcCuối cùng, phương pháp 882 có thể được sử dụng để xóa một thư mục và tất cả các tệp của nó 0Hệ thống tập tin tùy chỉnhTích hợp Flysystem của Laravel cung cấp hỗ trợ cho một số "trình điều khiển" sẵn có; . Bạn có thể tạo trình điều khiển tùy chỉnh nếu bạn muốn sử dụng một trong những bộ điều hợp bổ sung này trong ứng dụng Laravel của mình Để xác định hệ thống tệp tùy chỉnh, bạn sẽ cần bộ điều hợp Flysystem. Hãy thêm bộ điều hợp Dropbox do cộng đồng duy trì vào dự án của chúng ta 1Tiếp theo, bạn có thể đăng ký trình điều khiển theo phương pháp 812 của một trong những nhà cung cấp dịch vụ ứng dụng của bạn. Để thực hiện điều này, bạn nên sử dụng phương pháp 884 của mặt tiền 03 2Đối số đầu tiên của phương thức 884 là tên của trình điều khiển và đối số thứ hai là một bao đóng nhận các biến 887 và 888. Việc đóng cửa phải trả về một thể hiện của 889. Biến 888 chứa các giá trị được xác định trong 3 cho đĩa được chỉ địnhKhi bạn đã tạo và đăng ký nhà cung cấp dịch vụ của tiện ích mở rộng, bạn có thể sử dụng trình điều khiển 892 trong tệp cấu hình 3 của mình
__ TRỰC TIẾP __ trong PHP là gì?Có thể sử dụng __DIR__ để lấy thư mục làm việc của mã hiện tại . Nó đã được giới thiệu trong PHP bắt đầu từ phiên bản 5. 3. Nó tương tự như sử dụng dirname(__FILE__). Thông thường, nó được sử dụng để bao gồm các tệp khác có trong một tệp được bao gồm.
Làm cách nào tôi có thể lấy tệp thư mục trong PHP?Hàm scandir() trả về một mảng các tệp và thư mục của thư mục đã chỉ định.
làm gì. /' có nghĩa là trong đường dẫn?dấu gạch chéo / là dấu phân cách thư mục . trong mỗi thư mục có hai thư mục, cụ thể là. (thư mục hiện tại) và. (thư mục mẹ) nếu đường dẫn bắt đầu bằng dấu gạch chéo, điều đó có nghĩa đó là thư mục gốc của hệ thống tệp.
dirname (__ tệp __) trong PHP là gì?dirname(__FILE__) cho phép bạn có được một đường dẫn tuyệt đối (và do đó tránh tìm kiếm đường dẫn bao gồm) mà không cần dựa vào thư mục làm việc là thư mục trong đó bootstrap. php cư trú. (Ghi chú. kể từ PHP 5. 3, bạn có thể sử dụng __DIR__ thay cho dirname(__FILE__). ) |