Cách bao gồm tệp PHP ở dạng HTML

Trong thế giới ngày nay, các tập tin được trao đổi hàng ngày, đặc biệt là qua internet. Trang web sử dụng các tệp này cho các mục đích khác nhau như ảnh hồ sơ người dùng và trao đổi thông tin giữa những người dùng. Những phạm vi này từ hình ảnh, video đến tài liệu pdf

Giới thiệu

Trong hướng dẫn này, chúng ta sẽ xem xét cách sử dụng biểu mẫu HTML và PHP để tải tệp lên trang web

điều kiện tiên quyết

Trước khi bắt đầu hướng dẫn này, hãy đảm bảo rằng bạn đã có kiến ​​thức trước về cách tạo biểu mẫu HTML và cơ sở dữ liệu trong MySQL. Bạn có thể xem hướng dẫn đơn giản về cách tạo biểu mẫu trong HTML tại đây

Vì chúng tôi sẽ sử dụng PHP, hãy đảm bảo rằng bạn đã cài đặt Xampp để giúp chạy mã PHP. Bạn có thể tải về tại đây

GHI CHÚ. Trong hướng dẫn này, chúng ta sẽ sử dụng Windows

Khi quá trình cài đặt hoàn tất, hãy khởi động bảng điều khiển Xampp và kích hoạt Apache bằng cách nhấp vào nút bắt đầu như được đánh dấu bên dưới

Sau vài giây, tiêu đề Apache sẽ chuyển sang nền xanh để cho biết máy chủ apache đang chạy. Kiểm tra hình ảnh dưới đây để tham khảo

Bước 1 — Tạo tệp PHP

Điều hướng đến C:\xampp\htdocs\ [vị trí trình điều khiển sẽ phụ thuộc vào nơi bạn đã cài đặt ứng dụng Xampp của mình] và tạo một thư mục mới test

Chúng ta sẽ chuyển sang tạo một tệp mới


0 trong thư mục test, đây là nơi chúng ta sẽ viết tất cả mã cho hướng dẫn này

Trong tệp


2 chèn đoạn mã sau

DOCTYPE html>

  
    HTML Form
  
  
    Form
    
      Name
       
      file : 
      
      
    
  

Để xem đầu ra của mã này, hãy truy cập trình duyệt của bạn tại http. //máy chủ cục bộ/thử nghiệm. Ở đây, chúng tôi nối tên thư mục của mình test vào URL cơ sở của máy chủ Apache của chúng tôi


4

Từ trình duyệt, bạn sẽ có một cái gì đó như thế này

Bước 1 - Tạo logic PHP để xử lý tệp tải lên

Trong biểu mẫu chúng tôi đã tạo ở trên, khi chúng tôi nhấp vào nút gửi, một hành động dường như đang diễn ra. Mặc dù tệp chúng tôi chọn tải lên dường như đã được tải lên nhưng chúng tôi không thể xác định vị trí của chúng

Để làm cho biểu mẫu này lưu tệp đã tải lên ở vị trí ưa thích của chúng tôi, chúng tôi sẽ tạo một tập lệnh PHP để xử lý quy trình gửi

Thường có 2 cách xử lý phổ biến trong tình huống trên

  1. Lưu tệp trên bản ghi bảng - Theo cách này, chúng tôi lưu các tệp trong một thư mục và sau đó lưu tham chiếu trên cơ sở dữ liệu
  2. Lưu file trực tiếp trên cơ sở dữ liệu - Với cách này ta lưu file dưới dạng file nhị phân [BLOB]. Tuy nhiên, cách này không hiệu quả đặc biệt trong trường hợp phải tải lên các tệp lớn. Điều này là do nó sẽ làm chậm quá trình truy cập cơ sở dữ liệu khi các bản ghi tăng lên

Lưu tệp trên bản ghi bảng

Khi lưu tệp trên bản ghi bảng, chúng tôi làm theo các bước sau

  1. Tạo cơ sở dữ liệu -> Đi tới bảng điều khiển
    
    
    5 và khởi động MySQL. Nhấp vào nút quản trị để truy cập bảng điều khiển
    
    
    6;

.

Nút quản trị trên hàng MySQL sẽ đưa bạn đến trình duyệt của bạn và hiển thị nút này

bảng điều khiển phpmyadmin

  1. Kết nối với cơ sở dữ liệu -> Đối với hướng dẫn này, chúng tôi sẽ sử dụng mysqli. Trong tệp
    
    
    2 của chúng tôi, bên dưới thẻ html đóng, hãy thêm tập lệnh php sau


Đoạn mã trên cho phép chúng tôi kết nối với cơ sở dữ liệu của mình. Biến


8 lưu trữ tên của máy chủ nơi đặt cơ sở dữ liệu của chúng tôi

Các biến


9 và
if[isset[$_POST['submit']]]{
   $name = $_FILES['file']['name'];
   //the directory to upload to
   $targetDir = "uploads/";
   //the file being upload
   $targetFile = $targetDir.basename[$\_FILES['file']['name']];
   //select the file type - file extension
   $fileType = strtolower[pathinfo[$targetFile,PATHINFO_EXTENSION]];
}
0 lưu trữ dữ liệu về người dùng.
if[isset[$_POST['submit']]]{
   $name = $_FILES['file']['name'];
   //the directory to upload to
   $targetDir = "uploads/";
   //the file being upload
   $targetFile = $targetDir.basename[$\_FILES['file']['name']];
   //select the file type - file extension
   $fileType = strtolower[pathinfo[$targetFile,PATHINFO_EXTENSION]];
}
0 trống trong trường hợp của chúng tôi vì trong máy chủ Apache của chúng tôi, chúng tôi chưa đặt bất kỳ.
if[isset[$_POST['submit']]]{
   $name = $_FILES['file']['name'];
   //the directory to upload to
   $targetDir = "uploads/";
   //the file being upload
   $targetFile = $targetDir.basename[$\_FILES['file']['name']];
   //select the file type - file extension
   $fileType = strtolower[pathinfo[$targetFile,PATHINFO_EXTENSION]];
}
2 lưu trữ tên cơ sở dữ liệu của chúng tôi

Chúng ta sẽ sử dụng biến

if[isset[$_POST['submit']]]{
   $name = $_FILES['file']['name'];
   //the directory to upload to
   $targetDir = "uploads/";
   //the file being upload
   $targetFile = $targetDir.basename[$\_FILES['file']['name']];
   //select the file type - file extension
   $fileType = strtolower[pathinfo[$targetFile,PATHINFO_EXTENSION]];
}
3 để kết nối với cơ sở dữ liệu. Để đảm bảo kết nối đang hoạt động, chúng tôi sử dụng chức năng
if[isset[$_POST['submit']]]{
   $name = $_FILES['file']['name'];
   //the directory to upload to
   $targetDir = "uploads/";
   //the file being upload
   $targetFile = $targetDir.basename[$\_FILES['file']['name']];
   //select the file type - file extension
   $fileType = strtolower[pathinfo[$targetFile,PATHINFO_EXTENSION]];
}
4 để kết thúc kết nối và gửi phản hồi cho chúng tôi trong trường hợp kết nối không thành công

  1. Lấy tệp từ biểu mẫu -> khi người dùng tải tệp lên trong biểu mẫu của chúng tôi, chúng tôi cần lấy tệp và lưu trữ tệp ở vị trí ưa thích của chúng tôi. Để thực hiện việc này, hãy thêm một thư mục mới bên trong thư mục kiểm tra và đặt tên là tải lên

Mã này sẽ lấy tệp từ các biểu mẫu. Chèn nó vào tập lệnh PHP của chúng tôi ngay bên dưới

if[isset[$_POST['submit']]]{
   $name = $_FILES['file']['name'];
   //the directory to upload to
   $targetDir = "uploads/";
   //the file being upload
   $targetFile = $targetDir.basename[$\_FILES['file']['name']];
   //select the file type - file extension
   $fileType = strtolower[pathinfo[$targetFile,PATHINFO_EXTENSION]];
}
3

if[isset[$_POST['submit']]]{
   $name = $_FILES['file']['name'];
   //the directory to upload to
   $targetDir = "uploads/";
   //the file being upload
   $targetFile = $targetDir.basename[$\_FILES['file']['name']];
   //select the file type - file extension
   $fileType = strtolower[pathinfo[$targetFile,PATHINFO_EXTENSION]];
}

Chúng tôi sử dụng câu lệnh if để kiểm tra xem người dùng đã nhấp vào nút gửi chưa. Nếu đúng, tên tệp sẽ được lưu trữ trong

if[isset[$_POST['submit']]]{
   $name = $_FILES['file']['name'];
   //the directory to upload to
   $targetDir = "uploads/";
   //the file being upload
   $targetFile = $targetDir.basename[$\_FILES['file']['name']];
   //select the file type - file extension
   $fileType = strtolower[pathinfo[$targetFile,PATHINFO_EXTENSION]];
}
6. Vì chúng tôi đã tạo vị trí lưu trữ ưa thích của mình, chúng tôi sử dụng
if[isset[$_POST['submit']]]{
   $name = $_FILES['file']['name'];
   //the directory to upload to
   $targetDir = "uploads/";
   //the file being upload
   $targetFile = $targetDir.basename[$\_FILES['file']['name']];
   //select the file type - file extension
   $fileType = strtolower[pathinfo[$targetFile,PATHINFO_EXTENSION]];
}
7 để cho biết nơi sẽ lưu trữ tệp của chúng tôi

Trong một số trường hợp, chúng tôi có thể muốn hạn chế loại tệp được tải lên. Các tệp khác nhau có các phần mở rộng khác nhau cho phép chúng tôi lọc các tệp

Chèn đoạn mã sau vào bên dưới

if[isset[$_POST['submit']]]{
   $name = $_FILES['file']['name'];
   //the directory to upload to
   $targetDir = "uploads/";
   //the file being upload
   $targetFile = $targetDir.basename[$\_FILES['file']['name']];
   //select the file type - file extension
   $fileType = strtolower[pathinfo[$targetFile,PATHINFO_EXTENSION]];
}
8

//valid file extensions we will allow
$extensions_arr= array["jpg","jpeg","png"];
//checking the extension of our uploaded file
if[in_array[$fileType,$extensions_arr]]{
   // Insert record
   $query = " INSERT into `files` [`filename`] values['$name']";
   mysqli_query[$conn,$query];
   // Upload file
   move_uploaded_file[$_FILES['file']['tmp_name'],$targetDir.$name];
} else echo " wrong file type ";

Trong hướng dẫn này, chúng tôi sẽ giới hạn loại chỉ ảnh.

if[isset[$_POST['submit']]]{
   $name = $_FILES['file']['name'];
   //the directory to upload to
   $targetDir = "uploads/";
   //the file being upload
   $targetFile = $targetDir.basename[$\_FILES['file']['name']];
   //select the file type - file extension
   $fileType = strtolower[pathinfo[$targetFile,PATHINFO_EXTENSION]];
}
9 lưu trữ các loại tệp chúng tôi sẽ cho phép

Hãy kiểm tra xem tệp của chúng tôi có bất kỳ tiện ích mở rộng nào ở trên không. Hàm

//valid file extensions we will allow
$extensions_arr= array["jpg","jpeg","png"];
//checking the extension of our uploaded file
if[in_array[$fileType,$extensions_arr]]{
   // Insert record
   $query = " INSERT into `files` [`filename`] values['$name']";
   mysqli_query[$conn,$query];
   // Upload file
   move_uploaded_file[$_FILES['file']['tmp_name'],$targetDir.$name];
} else echo " wrong file type ";
0 kiểm tra xem một giá trị có tồn tại trong một mảng không

Nếu nó tồn tại, chúng tôi sẽ tạo một truy vấn để chèn tên tệp vào cơ sở dữ liệu của chúng tôi. Điều này hoạt động như một tham chiếu đến tệp của chúng tôi sẽ được lưu trữ trong thư mục

//valid file extensions we will allow
$extensions_arr= array["jpg","jpeg","png"];
//checking the extension of our uploaded file
if[in_array[$fileType,$extensions_arr]]{
   // Insert record
   $query = " INSERT into `files` [`filename`] values['$name']";
   mysqli_query[$conn,$query];
   // Upload file
   move_uploaded_file[$_FILES['file']['tmp_name'],$targetDir.$name];
} else echo " wrong file type ";
1

Trong trường hợp loại tệp không khớp với các phần mở rộng trong mảng của chúng tôi, chúng tôi sẽ trả về thông báo lỗi bằng hàm

//valid file extensions we will allow
$extensions_arr= array["jpg","jpeg","png"];
//checking the extension of our uploaded file
if[in_array[$fileType,$extensions_arr]]{
   // Insert record
   $query = " INSERT into `files` [`filename`] values['$name']";
   mysqli_query[$conn,$query];
   // Upload file
   move_uploaded_file[$_FILES['file']['tmp_name'],$targetDir.$name];
} else echo " wrong file type ";
2

Truy xuất tệp

Để truy xuất tệp chúng tôi đã lưu trữ trong cơ sở dữ liệu của mình, chúng tôi cần truy vấn cơ sở dữ liệu để biết tên tệp

Vì chúng tôi chỉ lưu tên tệp chứ không lưu chính tên tệp nên kết quả từ truy vấn được khớp với các tệp trong thư mục

//valid file extensions we will allow
$extensions_arr= array["jpg","jpeg","png"];
//checking the extension of our uploaded file
if[in_array[$fileType,$extensions_arr]]{
   // Insert record
   $query = " INSERT into `files` [`filename`] values['$name']";
   mysqli_query[$conn,$query];
   // Upload file
   move_uploaded_file[$_FILES['file']['tmp_name'],$targetDir.$name];
} else echo " wrong file type ";
1 của chúng tôi

php $sql = "SELECT `filename` FROM `files` WHERE `filename`= '$name'"; $result = mysqli_query[$conn,$sql]; $row = mysqli_fetch_array[$result]; $image = $row['filename']; $image_src = "uploads/".$image 

Vì các tệp của chúng tôi là hình ảnh, chúng tôi sẽ thêm thẻ hình ảnh sau thẻ đóng của tập lệnh PHP của chúng tôi. Mã này sẽ hiển thị hình ảnh chúng tôi đã tải lên trong cơ sở dữ liệu của mình

php 

Chủ Đề