Danh mục

Xử lý thư mục và tệp tin

Số trang: 5      Loại file: doc      Dung lượng: 47.00 KB      Lượt xem: 13      Lượt tải: 0    
10.10.2023

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài viết này tập trung vào việc điều khiển hệ thống tệp tin và thư mục trên máy chủ(không phải máy khách). Bài này được chia làm các phần sau:Phần 1: Các hàm căn bản xử lý tệp và thư mụcPhần 2: Cách thức truy xuất dữ liệu từ tệp tin.Phần 3: Tải file lên máy chủ.
Nội dung trích xuất từ tài liệu:
Xử lý thư mục và tệp tin Bài 15: Xử lý thư mục và tệp tinBài viết này tập trung vào việc điều khiển hệ thống tệp tin và thư mục trên máy chủ(không phải máy khách). Bài này được chia làm các phần sau:Phần 1: Các hàm căn bản xử lý tệp và thư mụcPhần 2: Cách thức truy xuất dữ liệu từ tệp tin.Phần 3: Tải file lên máy chủ.Phần I. Các hàm cơ bản để xử lý tệp và thư mụcI. Một số hàm xử lý thư mục1. Thay đổi thư mục gốcĐể thay đổi thư mục gốc, ta dùng hàm chrootCú pháp:PHP Code:bool chroot ( string directory)Hàm này trả về true nếu như thư mục gốc được chuyển đổi thành thư mục có đườngdẫn là directory.2. Thay đổi thư mục hiện hànhCú pháp:PHP Code:bool chdir ( string directory)Thay đổi thư mục hiện hành sang thư mục có đường dẫn là directory. Hàm trả vềTRUE nếu thành công, ngược lại là FALSE.3. Trả về thư mục hiện hànhĐể lấy đường dẫn của thư mục hiện hành, ta dùng hàm getcwd:PHP Code:string getcwd ()4. Hiển thị danh sách các tệp và thư mục con của một thư mục nào đó:Để làm điều này, ta dùng hàm scandirVD:PHP Code:hơ hơ, đây chính là cách mà mấy con remview hoặc backdoor của mấy chú hacker haysử dụng để duyệt qua các tệp và thư mục trên máy chủ đây mà5. Tạo một thư mục mớiĐể tạo một thư mục mới trên máy chủ, ta dùng hàm mkdir():bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]])VD:PHP Code:6. Xoá một thư mụcĐể xoá một thư mục mới trên máy chủ, ta dùng hàm rmdir():bool rmdir (string pathname)VD:PHP Code:II. Một số hàm xử lý tệp tin1. Đổi tên tệp tin:Để đổi tên tệp tin, ta dùng hàm rename:PHP Code:bool rename ( string oldname, string newname)Hàm này sẽ cố gắng đổi tên từ oldname sang tên mới (newname). Hàm sẽ trả vềTRUE nếu thành công, ngược lại là FALSE2. Xóa tệp tinĐể xóa tên tệp tin, ta dùng hàm unlink() hoặc delete():PHP Code:int unlink ( string filename)Hàm này sẽ xóa file có đường dẫn (tên) là filename. Trả về TRUE nếu thành công,ngược lại là FALSE3. Copy fileĐể copy file, ta dùng hàm copy có cấu trúc như sau:PHP Code:int copy ( string source, string dest)Hàm này sẽ tạo ra một bản copy file nguồn (sourse) sang file đích (dest). Hàm trả vềTRUE nếu thành công, ngược lại là FALSEVí dụ:PHP Code: print (Lỗi copy $file...\n);}?>Hàm kiểm tra sự tồn tại của một file:Khi xử lý các file, ta thường kiểm tra xem file có tồn tại hay không trước khi tiến hànhcác thao tác đọc, ghi dữ liệu:Cú pháp:PHP Code:bool file_exists ( string filename)Hàm này sẽ trả về TRUE nếu thành công, ngược lại là FALSE.Phần III. Tải file từ máy khách lên máy chủ.Trong quá trình trao đổi dữ liệu giữa máy khách và máy chủ, tải file là một công việcrất thường gặp. Đó có thể là việc tải một file hình ảnh lên máy chủ, 1 file zip hay 1file tài liệu bất kỳ nào đó. Sau khi đưa lên máy chủ, các file này sẽ được cung cấp liênkết để người dùng có thể tải file về sử dụng.Cách tải file thông dụng nhất hiện nay là sử dụng giao thức FTP. Tuy nhiên, tài khoảnftp thường ít được chia sẻ vì nó liên quan rất nhiều đến hệ thống, và thường chỉ có cácadmin mới có được tài khoản này. Vì vậy, các trang web động thường sử dụng mộtcách khác để truyền tải file lên dựa vào chuần giao thức HTTP (sử dụng HTMLForm).I. Xây dựng form HTML để cho phép người dùng lựa chọn file cần tảiQuay trở lại một form trong HTML, chúng ta đã biết các thành phần căn bản của formnhư: tên form, các phần tử nhập dữ liệu như textarea, thẻ input, thẻ lựa chọn select -option...Để có thể cho phép người dùng lựa chọn một file nào đó trên máy tính và tải lên, formHTML này sẽ có một cấu trúc hơi đặc biệt một chút, và có một thành phần là thẻinput với type=file.Trước tiên, chúng ta quay trở lại với thẻ Như ở trên, chúng ta đã biết thẻ form có một số thuộc tính:- method: Xác định kiểu truyền dữ liệu là GET hay POST. Để tải file, method bắtbuộc phải có kiểu POST (vì dữ liệu trong file thường là lớn hơn những gì mà GET cóthể truyền tải).- name: Xác định tên của form (tên này có thể được dùng để truyền dữ liệu quajavascript)- action: Xác định địa chỉ URL mà dữ liêu cần gửi tớiĐể tải file, ta cần phải biết thêm một thuộc tính nữa, đó là thuộc tính enctype với giátrị là multipart/form-data.Như vậy, để tải file, ta phải làm một form như sau:HTML Code: Các thành phần trong form như văn bản, hình ảnh, ô nhập liệu... Tiếp đó, chúng ta sẽ trang bị một ô để cho phép người dùng lựa chọn file cần tải lên.Thành phần này cũng vẫn là thẻ input nhưng với type=file:Khi đưa thẻ này vào, nó sẽ hiển thị một ô và nút Browse bên cạnh. Người dùng sẽ kíchchuột vào nút Browse để lựa chọn file như chúng ta thường thấy.Dưới đây là một form đơn giản chỉ chứa một ô để tải file và nút submit:HTML Code: Lựa chọn file cần tải: II. Xử lý file trên máy chủNhư vậy ta đã xây dựng được một form để cho phép người dùng chọn file. Sau khingười dùng bấm nút Submit, file sẽ được tải lên máy chủ, và được máy chủ lưu vàomột thư mục tạm, đồng thời sinh ra một mảng có tên là$_FILES[tên_phần_tử_trên_form] hoặc có một tên khác là$HTTP_POST_FILES[tên_phần_tử_trên_form]. Việc tiếp theo là ta phải xử lý cáifile đó như thế nào?Trước tiên, chúng ta thử tìm hiểu xem cái mảng kia chứa những thông tin gì:Với ví dụ trên, tên_phần_tử_trên_form là UserFileName (tương ứng với thẻ )Như vậy khi người dùng chọn file rồi kích chọn Submit thì trình duyệt sẽ gửi file lên.Sau khi hoàn tất việc gửi file, máy chủ sẽ sinh ra một mảng có tên là$_FILES[UserFileName].Mảng này chứa các thông tin sau:$_FILES[UserFileName][name]: Tên gốc của file trên máy khách$_FILES[UserFileName][type]: Kiểu MIME của file (n ếu trình duyệt cung cấp thôngtin). Ví dụ: image/gif.$_FILES[UserFileName][size]: Kích thước của file được tải tính theo byte$_FILES[UserFileName][tmp_name]: Tên tạm của file khi nó đã được tải và lưu trênthư mục tạm của máy chủ.Như vậy chúng ta đã có được đầy đủ các thông tin đ ...

Tài liệu được xem nhiều:

Gợi ý tài liệu liên quan: