Mã PHP để tải xuống tệp từ cơ sở dữ liệu

";         echo "";         echo "";     }    echo "

Thông thường, có thể sử dụng siêu liên kết để mở tệp trên trình duyệt. Trong trường hợp như vậy, tệp có thể tải xuống từ trình duyệt theo cách thủ công. Nếu bạn muốn tải xuống tệp động và tự động lưu tệp trên ổ đĩa cục bộ, hãy buộc trình duyệt tải xuống tệp thay vì hiển thị tệp. Chức năng buộc tải xuống tệp cho phép người dùng tải xuống các tệp bằng PHP trong đó các tệp được yêu cầu được tải xuống mạnh mẽ mà không hiển thị trên trình duyệt. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách tải xuống tệp từ thư mục hoặc máy chủ trong PHP

Sử dụng hàm header()readfile(), bạn có thể dễ dàng tải xuống một tệp trong PHP. Ở đây chúng tôi sẽ cung cấp mã PHP mẫu để buộc tải xuống tệp trong PHP. Ngoài ra, tập lệnh PHP đơn giản này giúp triển khai liên kết tải xuống tải xuống tệp từ thư mục. Tập lệnh ví dụ sau có thể được sử dụng để tải xuống bất kỳ loại tệp nào như văn bản, hình ảnh, tài liệu, pdf, zip, v.v.

// Define file name and path
$fileName = 'Brochure.pdf';
$filePath = 'files/'.$fileName;

if(!empty($fileName) && file_exists($filePath)){
    // Define headers
    header("Cache-Control: public");
    header("Content-Description: File Transfer");
    header("Content-Disposition: attachment; filename=$fileName");
    header("Content-Type: application/zip");
    header("Content-Transfer-Encoding: binary");

    // Read the file
    readfile($filePath);
    exit;
}else{
    echo 'The file does not exist.';
}

Tải xuống tệp thông qua liên kết neo

Trong ứng dụng web, bạn cần cung cấp một siêu liên kết để cho phép người dùng tải xuống các tệp từ máy chủ một cách linh hoạt. Sử dụng mã mẫu bên dưới để hiển thị liên kết HTML để tải xuống tệp từ thư mục bằng PHP
Mã HTML

Download File

Mã PHP (tải xuống. php)

if(!empty($_GET['file'])){
    // Define file name and path
    $fileName = basename($_GET['file']);
    $filePath = 'files/'.$fileName;

    if(!empty($fileName) && file_exists($filePath)){
        // Define headers
        header("Cache-Control: public");
        header("Content-Description: File Transfer");
        header("Content-Disposition: attachment; filename=$fileName");
        header("Content-Type: application/zip");
        header("Content-Transfer-Encoding: binary");

        // Read the file
        readfile($filePath);
        exit;
    }else{
        echo 'The file does not exist.';
    }
}

?>

Buộc tải xuống tệp từ máy chủ từ xa trong PHP

Bạn có muốn nhận trợ giúp triển khai hay sửa đổi hoặc nâng cao chức năng của tập lệnh này không?

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn giải pháp tải lên và tải xuống các tệp trong PHP và MySQLi, chúng tôi có thể tải lên bất kỳ tệp nào trên cơ sở dữ liệu, sau đó chúng tôi có thể tải xuống các tệp đó bằng cách truy xuất từ ​​cơ sở dữ liệu và để tải lên các tệp trên bảng cơ sở dữ liệu, chúng tôi đã đề cập

Trong cơ sở dữ liệu, chúng tôi có thể lưu trữ, chỉnh sửa, cập nhật hoặc xóa các thao tác này và cơ sở dữ liệu chủ yếu được sử dụng để thu thập và lưu trữ tất cả thông tin người dùng

Khi chúng tôi cần một số thông tin từ cơ sở dữ liệu, chúng tôi có thể truy xuất bằng php vì đây là ngôn ngữ phía máy chủ

Hướng dẫn từng bước về tải lên và tải xuống tệp trong PHP và MySQLi. -

Ở đây chúng tôi cần thu thập thông tin chi tiết về máy chủ và gửi yêu cầu tới máy chủ bằng ‘mysqli_connect()’

Để thu thập thông tin đầu vào của người dùng, chúng tôi cần tạo các phần tử html của thẻ đầu vào với ba loại, một là 'văn bản' để lấy tiêu đề hình ảnh và loại 'tệp' cho các tệp tải lên, một loại khác là 'gửi'

Khi người dùng nhấp vào nút gửi, nó sẽ tải chương trình tải lên, trong đó chúng tôi đã tạo số ngẫu nhiên trước tên tệp để tránh thay thế tệp bằng cùng tên trên cơ sở dữ liệu

Sau đó, chúng tôi cần thực hiện truy vấn chèn với chi tiết 'tệp tải lên, tiêu đề tệp' và những chi tiết đó đã được chèn thành công vào cơ sở dữ liệu

Một thẻ đầu vào khác để 'tải xuống' tất cả các tệp từ bảng 'fileup' của chúng tôi, nó được thực hiện khi người dùng nhấp vào nút 'Tạo tệp tải xuống'




    File Upload And Download


                   
";     while($row=mysqli_fetch_array($q)){         echo "
"; echo $row['title']; echo ""; ?>Download File ";        echo "
"; }?>    
  1. A php script can be placed anywhere in the document. A php script starts with tags.
  2. Phần mở rộng tệp mặc định cho tệp php là “. php” và php mỗi câu lệnh kết thúc bằng dấu chấm phẩy ‘;’. Giữa thẻ bắt đầu và thẻ kết thúc, chúng ta cần xác định chương trình của mình bằng php
  3. Trước tiên, chúng ta cần tạo cơ sở dữ liệu có tên 'dbase' và tên bảng 'fileup' với ba cột là 'id,title,image'. Loại cột 'id' đó phải là 'chính và auto_increment' và loại tiêu đề là 'varchar', loại hình ảnh là 'varbinary'
  4. Chúng tôi cần thu thập thông tin chi tiết về máy chủ vì vậy chúng tôi đã sử dụng các biến ‘$localhost,$dbusername,$dbpassword,$dbname’ để thu thập thông tin chi tiết máy chủ của chúng tôi
  5. Trong biến '$ localhost', chúng tôi đã lưu trữ tên máy chủ và tên máy chủ của nó sẽ có sẵn trên đầu trang bên trái của trang máy chủ. Hầu hết thời gian tên của nó sẽ là 'localhost'
  6. Biến '$dbusername' được sử dụng cho 'tên người dùng' của cửa hàng, giá trị mặc định hầu hết thời gian của nó cũng là 'root', biến '$dbpassword' cho 'mật khẩu người dùng' của cửa hàng và biến '$dbname' cho 'tên cơ sở dữ liệu' của cửa hàng
  7. Tên cơ sở dữ liệu chắc chắn sẽ thay đổi vì chúng tôi có thể đặt bất kỳ tên nào cho cơ sở dữ liệu của mình khi tạo. Nếu bạn sử dụng mã trên thì hãy tạo cơ sở dữ liệu trên máy chủ xampp với tên 'dbase'
  8. Sau đó, sử dụng phương thức 'mysqli_connect()' với tham số chi tiết máy chủ, chúng tôi yêu cầu máy chủ cấp quyền
  9. Khi yêu cầu cấp có nghĩa là nó tìm thấy tên cơ sở dữ liệu trên máy chủ xampp và khi tìm thấy kết nối của nó sẽ thành công. Nếu tên cơ sở dữ liệu không thoát hoặc bất kỳ chi tiết máy chủ nào không chính xác thì nó sẽ báo lỗi trên trang web của trình duyệt
  10. Vì vậy, chúng tôi đã cung cấp thông tin chi tiết chính xác về máy chủ và cơ sở dữ liệu, sau đó chúng tôi có thể đạt được kết quả dễ dàng. Điều kiện if() đầu tiên để kiểm tra xem nút gửi có được nhấp hay không
  11. Chúng tôi đang lưu trữ đầu vào của người dùng, tiêu đề của hình ảnh thành biến ‘$title’. Sau đó, chúng tôi tạo số ngẫu nhiên để thêm vào phía trước tên tệp vì nó tránh thay thế và chúng tôi cần đặt tên thư mục cho biến '$uploads_dir'. Thư mục này phải xuất hiện ở cùng một vị trí của vị trí tệp này và các tệp và thư mục đó phải ở vị trí máy chủ
  12. Chúng tôi đã tạo vị trí tạm thời trước đó, đó là để di chuyển các tệp của chúng tôi đến vị trí đó và chúng tôi thực hiện truy vấn chèn để chèn 'tiêu đề, tệp' của người dùng vào bảng của chúng tôi 'fileup' trong cơ sở dữ liệu 'dbase' trên máy chủ
  13. Điều kiện if() tiếp theo để kiểm tra phần chèn của chúng ta có được thực thi thành công hay không. Khi thành công, nó sẽ đưa ra thông báo 'tệp đã tải lên thành công' trên trang web nếu không thông báo lỗi sẽ được đưa ra trên trang web
  14. Sau khi tải hình ảnh lên cơ sở dữ liệu khi người dùng nhấp vào nút 'Tạo tệp tải xuống', nó sẽ bắt đầu truy xuất các tệp đó và tạo liên kết tải xuống. Trước tiên, chúng ta cần tạo truy vấn chọn để chọn tất cả dữ liệu từ bảng và lưu vào biến ‘$sql’
  15. Để thực hiện truy vấn chọn, chúng ta cần sử dụng hàm ‘mysqli_query()’ với chuỗi kết nối ‘$conn’ sau đó lưu kết quả vào biến ‘$q’. Ở đây, chúng tôi đã nhúng html để tạo bảng và chúng tôi sử dụng vòng lặp while để tìm nạp tất cả 'tiêu đề tệp và tệp' được lưu trữ trên bảng 'fileup' bằng chức năng 'mysqli_fetch_array()'
  16. Trong vòng lặp tìm nạp dữ liệu theo từng hàng từ bảng cơ sở dữ liệu, những dữ liệu này được lưu vào biến '$row' thì mỗi giá trị cột hàng của ($row['title'] được tham chiếu là 'tiêu đề tệp', $row["image"] được tham chiếu '
  17. For generate file link we used anchor tag and tag attribute ‘href’ refers path of file. In href “img/” refers file stored folder on server location then printed file name within path by ‘$row[‘image’]’.
  18. Vì vậy, cuối cùng chúng tôi đã tạo các đường dẫn tệp được lưu trữ trên cơ sở dữ liệu. Trong vòng một vòng lặp, những dữ liệu đã tìm nạp đó sẽ được in trong bảng html
  19. Khi nhấp vào liên kết 'Tải xuống', tệp tương ứng sẽ mở với tùy chọn tải xuống, vì vậy chúng tôi có thể tải xuống tất cả các tệp một cách dễ dàng
  20. Sau đó, kết quả sẽ được in trên trang web của chúng tôi bằng cách sử dụng 'echo()' với chuỗi 'kết nối thành công'. Nó cũng là một câu lệnh để in bất kỳ giá trị nào trong php

Phần kết luận. -

Tóm lại, chúng tôi có thể biết cách tải lên bất kỳ hình ảnh nào trên cơ sở dữ liệu mysql bằng cách sử dụng php

Khi làm việc với php, chúng ta cần tạo và xử lý các tệp php tại vị trí máy chủ và sau đó chúng ta cần khởi động máy chủ trước khi thực hiện chương trình

Khi người dùng cung cấp đầu vào và nhấp vào nút gửi, nó sẽ tải lên thành công trên bảng cơ sở dữ liệu của chúng tôi trong máy chủ với thông báo thành công hiển thị trên trang web để xác minh người dùng, nếu không, nó sẽ đưa ra thông báo lỗi trên trang web của trình duyệt

Tương tự như đối với tải xuống khi người dùng nhấp vào nút 'Tạo Tải xuống' đã tìm nạp tất cả các tệp từ bảng cơ sở dữ liệu được in bằng liên kết tải xuống trên trang web có định dạng bảng html

Trong các liên kết đó, tệp chúng tôi cần tải xuống, nhấp vào liên kết cụ thể đó, sau đó nó sẽ mở tệp đó với tùy chọn tải xuống hoặc tải xuống ngay lập tức tùy thuộc vào loại tệp, vì vậy chúng tôi có thể tải xuống dễ dàng

Tôi hy vọng hướng dẫn tải lên và tải xuống các tệp trong PHP và MySQLi này sẽ giúp ích cho bạn và các bước cũng như phương pháp được đề cập ở trên sẽ dễ thực hiện và thực hiện

Làm cách nào để tìm nạp tệp từ cơ sở dữ liệu trong PHP?

Làm cách nào để tải xuống tệp PDF từ cơ sở dữ liệu trong PHP?

Làm cách nào để tải xuống tệp từ máy chủ PHP?

Làm cách nào để tải xuống tệp Excel từ máy chủ bằng PHP?