Tệp để tải xuống với php mysql

Đã được một thời gian kể từ khi chúng tôi thực hiện một hướng dẫn thích hợp về PHP & MySQL tại Tutorialzine, vì vậy hôm nay chúng tôi đang tạo một trình theo dõi tải xuống tệp đơn giản nhưng mạnh mẽ

Mỗi tệp sẽ có một hàng tương ứng trong cơ sở dữ liệu, nơi lưu tổng số lượt tải xuống. PHP sẽ cập nhật cơ sở dữ liệu MySQL và chuyển hướng khách truy cập đến các tệp thích hợp

Để theo dõi số lượt tải xuống, bạn chỉ cần tải các tệp của mình lên thư mục tệp và sử dụng một URL đặc biệt để truy cập chúng

Ghi chú. Hướng dẫn này khá cũ và không hoạt động trong PHP7 trở lên. Chúng tôi đang giữ nó trực tuyến chỉ như một tài liệu tham khảo

Bước 1 - XHTML

Bước đầu tiên là đặt đánh dấu XHTML của trình theo dõi. Nó khá đơn giản - chúng ta có div trình quản lý tệp, chứa danh sách không có thứ tự với mỗi tệp dưới dạng phần tử li

Các tệp sẽ được theo dõi, được đưa vào thư mục tệp trong thư mục gốc của tập lệnh (bạn có thể xem cấu trúc tệp được tổ chức như thế nào trong tệp zip trình diễn). PHP sau đó lặp qua tất cả các tệp và thêm từng tệp dưới dạng phần tử li riêng biệt vào danh sách không có thứ tự

thử nghiệm. php


Lưu ý thuộc tính href của siêu liên kết - nó chuyển tên của tệp dưới dạng tham số để tải xuống. php. Đây là nơi diễn ra quá trình theo dõi tải xuống, như bạn sẽ thấy trong giây lát

Bạn không bị giới hạn trong giao diện này để cung cấp tính năng theo dõi tải xuống - bạn chỉ cần đăng liên kết để tải xuống. php trong các bài đăng trên blog hoặc trang web của bạn và tất cả các bản tải xuống sẽ được theo dõi chính xác

Tệp để tải xuống với php mysql
Tải xuống giao diện truy cập

Bước 2 - CSS

Với đánh dấu XHTML tại chỗ, giờ đây chúng ta có thể tập trung vào phần trình bày của tập lệnh. Các quy tắc CSS bên dưới nhắm mục tiêu div của trình quản lý tệp theo id (có ký hiệu băm), vì nó chỉ xuất hiện một lần trong trang và phần còn lại của các phần tử theo tên lớp

phong cách. css

#file-manager{
    background-color:#EEE;
    border:1px solid #DDD;
    margin:50px auto;
    padding:10px;
    width:400px;
}

ul.manager li{
    background:url("img/bg_gradient.gif") repeat-x center bottom #F5F5F5;
    border:1px solid #DDD;
    border-top-color:#FFF;

    list-style:none;
    position:relative;
}

ul.manager li a{
    display:block;
    padding:8px;
}

ul.manager li a:hover .download-label{
    /* When a list is hovered over, show the download green text inside it: */
    display:block;
}

span.download-label{
    background-color:#64B126;
    border:1px solid #4E9416;
    color:white;
    display:none;
    font-size:10px;
    padding:2px 4px;
    position:absolute;
    right:8px;
    text-decoration:none;
    text-shadow:0 0 1px #315D0D;
    top:6px;

    /* CSS3 Rounded Corners */

    -moz-border-radius:3px;
    -webkit-border-radius:3px;
    border-radius:3px;
}

span.download-count{
    color:#999;
    font-size:10px;
    padding:3px 5px;
    position:absolute;
    text-decoration:none;
}

The interesting part here is that the download label is hidden by default with display:none. It is shown with display:block only when we are hovering over its parent element, and thus the right label is shown without a need for using JavaScript. A bit of CSS3 is also used as well to round the corners of the download label.

Tệp để tải xuống với php mysql
Trạng thái di chuột bằng CSS

Bước 3 - PHP

Như đã đề cập trước đó, PHP lặp qua thư mục tệp và xuất từng tệp dưới dạng phần tử li trong danh sách không có thứ tự. Bây giờ chúng ta hãy xem xét kỹ hơn điều này xảy ra như thế nào

thử nghiệm. php - Phần trên cùng

// Error reporting:
error_reporting(E_ALL^E_NOTICE);

// Including the DB connection file:
require 'connect.php';

$extension='';
$files_array = array();

/* Opening the thumbnail directory and looping through all the thumbs: */

$dir_handle = @opendir($directory) or die("There is an error with your file directory!");

while ($file = readdir($dir_handle))
{
    /* Skipping the system files: */
    if($file{0}=='.') continue;

    /* end() returns the last element of the array generated by the explode() function: */
    $extension = strtolower(end(explode('.',$file)));

    /* Skipping the php files: */
    if($extension == 'php') continue;

    $files_array[]=$file;
}

/* Sorting the files alphabetically */
sort($files_array,SORT_STRING);

$file_downloads=array();

$result = mysql_query("SELECT * FROM download_manager");

if(mysql_num_rows($result))
while($row=mysql_fetch_assoc($result))
{
    /*  The key of the $file_downloads array will be the name of the file,
        and will contain the number of downloads: */

    $file_downloads[$row['filename']]=$row['downloads'];
}

Lưu ý cách chúng tôi đang chọn tất cả các hàng từ bảng download_manager với mysql_query() và sau đó thêm chúng vào mảng $file_downloads với tên tệp làm khóa cho số lượt tải xuống. Bằng cách này, sau này trong mã, chúng ta có thể viết $file_downloads['archive. zip'] và xuất số lần tệp này đã được tải xuống

Bạn có thể xem mã chúng tôi sử dụng để tạo các mục li bên dưới

thử nghiệm. php - Phần giữa

foreach($files_array as $key=>$val)
{
    echo '
  • '.$val.' '.(int)$file_downloads[$val].' download
  • '; }

    Nó đơn giản như vậy - một vòng lặp foreach trên mảng $files_array và một câu lệnh echo in tất cả đánh dấu vào trang

    Bây giờ, hãy xem xét kỹ hơn cách chính xác các bản tải xuống được theo dõi

    Tải xuống. php

    // Error reporting:
    error_reporting(E_ALL^E_NOTICE);
    
    // Including the connection file:
    require('connect.php');
    
    if(!$_GET['file']) error('Missing parameter!');
    if($_GET['file']{0}=='.') error('Wrong file!');
    
    if(file_exists($directory.'/'.$_GET['file']))
    {
        /* If the visitor is not a search engine, count the downoad: */
        if(!is_bot())
        mysql_query("   INSERT INTO download_manager SET filename='".mysql_real_escape_string($_GET['file'])."'
                        ON DUPLICATE KEY UPDATE downloads=downloads+1");
    
        header("Location: ".$directory."/".$_GET['file']);
        exit;
    }
    else error("This file does not exist!");
    
    /* Helper functions: */
    
    function error($str)
    {
        die($str);
    }
    
    function is_bot()
    {
        /* This function will check whether the visitor is a search engine robot */
    
        $botlist = array("Teoma", "alexa", "froogle", "Gigabot", "inktomi",
        "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory",
        "Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot",
        "crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp",
        "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz",
        "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot",
        "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler","TweetmemeBot",
        "Butterfly","Twitturls","Me.dium","Twiceler");
    
        foreach($botlist as $bot)
        {
            if(strpos($_SERVER['HTTP_USER_AGENT'],$bot)!==false)
            return true;    // Is a bot
        }
    
        return false;   // Not a bot
    }
    

    Điều quan trọng là phải kiểm tra xem liệu khách truy cập có phải là robot của công cụ tìm kiếm đang quét các liên kết của bạn chứ không phải người thật hay không. Robot là một điều tốt vì chúng giúp bạn được đưa vào các dịch vụ như Google Tìm kiếm, nhưng trong tình huống như thế này, có thể làm sai lệch số liệu thống kê tải xuống của bạn. Đây là lý do tại sao hàng cơ sở dữ liệu chỉ được cập nhật sau khi khách truy cập vượt qua xác thực is_bot()

    Bước 4 - MySQL

    Như đã đề cập ở bước trước, số lượt tải xuống được lưu dưới dạng một hàng trong bảng download_manager trong cơ sở dữ liệu MySQL của bạn. Trước tiên, hãy giải thích cách hoạt động của truy vấn cụ thể này

    Tải xuống. php

    INSERT INTO download_manager SET filename='filename.doc'
    ON DUPLICATE KEY UPDATE downloads=downloads+1

    Nó yêu cầu MySQL chèn một hàng mới vào bảng download_manager và đặt trường tên tệp của hàng thành giá trị của tệp được yêu cầu để tải xuống. Tuy nhiên, trường tên tệp được định nghĩa là một chỉ mục duy nhất trong bảng. Điều này có nghĩa là một hàng chỉ có thể được chèn một lần, nếu không sẽ xảy ra lỗi khóa trùng lặp

    Đây là nơi bắt đầu phần thứ hai của truy vấn - CẬP NHẬT KHÓA TRÊN DUPLICATE sẽ yêu cầu MySQL tăng cột tải xuống lên một nếu tệp đã tồn tại trong cơ sở dữ liệu

    Bằng cách này, các tệp mới sẽ được tự động chèn vào cơ sở dữ liệu khi chúng được tải xuống lần đầu tiên

    Tệp để tải xuống với php mysql
    Cấu trúc của Bảng download_manager

    Bước 5 - jQuery

    Để làm cho quá trình theo dõi tải xuống gần giống như thời gian thực, sẽ là một bổ sung thú vị để cập nhật bộ đếm bên cạnh tên tệp sau khi người dùng bắt đầu tải xuống. Nếu không, họ sẽ phải bắt đầu làm mới trang để số liệu thống kê mới cho bộ đếm được hiển thị

    Chúng tôi sẽ đạt được điều này với một thủ thuật jQuery nhỏ

    kịch bản. js

    $(document).ready(function(){
        /* This code is executed after the DOM has been completely loaded */
    
        $('ul.manager a').click(function(){
    
            var countSpan = $('.download-count',this);
            countSpan.text( parseInt(countSpan.text())+1);
        });
    });
    

    Chúng tôi chỉ gán một trình xử lý nhấp chuột cho các liên kết trỏ đến các tệp và mỗi khi một trong số chúng được nhấp vào, chúng tôi sẽ tăng số bên trong thẻ counter span

    Bước 6 - htaccess

    Còn một việc nữa chúng ta cần làm, trước khi chúng ta gọi nó là một ngày. tải gì. php làm là chuyển hướng khách truy cập đến tệp được yêu cầu đã được chuyển dưới dạng tham số. Tuy nhiên, bạn có thể nhận thấy rằng, đối với một số loại tệp nhất định, hành vi mặc định của trình duyệt là mở chúng trực tiếp. Thay vào đó, chúng tôi muốn bắt đầu tải xuống. Điều này đạt được với một vài dòng bên trong một. htaccess, được tìm thấy trong thư mục tệp

    
    ForceType application/octet-stream
    
    

    Với điều này, Bộ đếm tải xuống tệp của chúng tôi đã hoàn tất

    Phần kết luận

    Để chạy bản trình diễn trên máy chủ của riêng bạn, bạn sẽ cần tạo lại bảng download_manager trong cơ sở dữ liệu MySQL mà bạn có quyền truy cập. Bạn có thể tìm thấy mã SQL cần thiết sẽ tạo bảng cho bạn trong bảng. sql, mà bạn có thể tìm thấy trong kho lưu trữ tải xuống

    Sau này, chỉ cần thêm chi tiết đăng nhập của bạn cho cơ sở dữ liệu (do máy chủ web của bạn cung cấp) vào cấu hình. php

    Bạn nghĩ sao?

    BootstrapStudio

    Công cụ thiết kế web mang tính cách mạng để tạo các trang web và ứng dụng đáp ứng

    Những bài viết liên quan

    Ứng dụng đánh dấu trang đơn giản với PHP, JS & MySQL

    CSS . PHP

    Tạo Web Chat AJAX (Phần 1) - PHP và MySQL

    PHP . MySQL

    Tiện ích "Ai đang trực tuyến" với PHP, MySQL & jQuery

    CSS . jQuery

    AJAX-ed Todo List Với ​​PHP, MySQL & jQuery

    CSS . jQuery

    Tính năng đề xuất ứng dụng w/ PHP, MySQL & jQuery

    CSS . jQuery

    Tạo một hệ thống đăng ký siêu đơn giản với PHP và MySQL

    PHP . MySQL

    Michael

    bài viết tuyệt vời. tôi không biết về. thủ thuật htaccess. Tốt để biết. Bạn cũng có thể đăng cấu trúc bảng MySQL trong hướng dẫn không?

    Martin Angelov

    Cảm ơn bạn đã mang nó lên. Tôi đã thêm cấu trúc bảng vào Bước 4

    giai điệu

    ừm Martin Angelov bạn đến từ bulgaria?

    djb

    hướng dẫn rất tốt

    gurza

    Cảm ơn bạn cho hướng dẫn này. Nhưng tôi nghĩ có một vấn đề lớn trong phương pháp này
    Khi tôi nhấn nút 'tải xuống', bộ đếm được tăng lên. Tôi có thể hủy tải xuống và nhấn 'tải xuống' lần nữa
    Có thể giải pháp là thêm phiên kiểm tra. Bằng cách này, bạn chỉ có thể tăng bộ đếm trong một phiên. Bạn nghi gi?

    Bloggerzbible

    nó rất đẹp. Làm tốt lắm

    thợ săn tay sai

    Gurza. Mặc dù, jquery/javascript là phía máy khách, tập lệnh truy cập là phía máy chủ, vì vậy phương pháp này là chính xác. Việc bạn có nhấn hủy hay không là tùy thuộc vào máy khách, nhưng máy chủ vẫn sẽ phản hồi rằng đã xảy ra quá trình tải xuống đã cố gắng. Cách duy nhất để 'đếm hoàn thành' xảy ra là ứng dụng bên thứ 3/điều khiển x đang hoạt động. Máy chủ web sẽ không bao giờ biết liệu quá trình tải xuống phía máy khách đã hoàn tất hay chưa nếu không có ứng dụng phía máy khách. Nếu bạn đang tìm kiếm một giải pháp jquery/flash(active x) cung cấp tỷ lệ phần trăm tải xuống có gọi lại khi kết thúc, tôi khuyên bạn nên uploadify ( http. //www. tải lên. com/). Việc triển khai trình quản lý tải xuống dựa trên phiên sẽ không thể xác định liệu quá trình tải xuống đã hoàn tất hay chưa

    Martin Angelov

    @ Gurza
    @Taylor Hunt

    Để có thể theo dõi thời điểm tải xuống hoàn tất phía máy chủ, bạn có thể tùy chọn đọc tệp và xuất hoàn toàn bằng PHP (với tiêu đề phù hợp) thay vì chuyển hướng trình duyệt

    Bằng cách này, khi bạn đọc và xuất vài byte cuối cùng của tệp, bạn sẽ biết chắc chắn rằng máy khách đã tải xuống thành công và cập nhật bảng data_manager

    Tuy nhiên, điều này nằm trên mức hướng dẫn và giải pháp hiện tại (có chuyển hướng) sẽ đủ cho hầu hết người dùng

    gurza

    @Taylor Hunt
    @Martin Angelov

    Có, phương pháp là chính xác và hướng dẫn này sẽ đủ cho hầu hết người dùng. Nhưng
    Chúng ta có thể ghi vào biến phần khi người dùng bắt đầu tải xuống. Và kiểm tra biến này nếu quá trình tải xuống sẽ được bắt đầu lại

    Daniel Bidmon

    rất hay để sử dụng trong hệ thống cms tự tạo

    Q

    Hướng dẫn tuyệt vời, tôi chắc chắn sẽ sử dụng nó khi tôi đưa lên phần tải xuống trên trang web của mình

    Fernando

    Công việc tuyệt vời, hướng dẫn tuyệt vời cảm ơn bạn

    denbagus

    hướng dẫn tốt đẹp. Cảm ơn

    Artur

    Ótimo trabalho

    Parabens hướng dẫn

    Jason

    THÍCH CÁI NÀY. Rất thích xem một cách để theo dõi xem ai đang tải xuống. Giống như cửa sổ bật lên hộp bóng tối hoặc trang trình bày ra hoặc xuống hỏi mọi người về những thông tin cơ bản như Tên, Email, Điện thoại. Tôi muốn theo dõi xem ai đang tải xuống các tệp của tôi để giải quyết các vấn đề về quyền và tín dụng

    dù sao đi nữa, YÊU trang web, Yêu tất cả những thứ tuyệt vời mà tôi đang học. Cám ơn rất nhiều

    jason

    Ni-cô-la M

    Hướng dẫn tuyệt vời, cảm ơn bạn

    MadTogger

    Hướng dẫn tuyệt vời, cảm ơn bạn

    Tôi đã tìm kiếm trên Internet một Bộ đếm tải xuống phù hợp cho trang web Drupal của mình và điều này làm mọi thứ tôi cần.

    Tôi đã thực hiện một vài thay đổi của riêng mình để làm cho nó phù hợp hơn với trang web của tôi, xem tại đây. -

    www. người điên. đồng. uk/trang/phần mềm

    vẫn đang trong giai đoạn đầu tùy chỉnh nó nhưng điều chính là xương trần hoạt động

    Làm tốt lắm Martin, tôi thực sự đánh giá cao nó

    Chúc mừng. ,

    as_you_2007

    hướng dẫn tốt. Một câu hỏi, nhiều lần chúng tôi không thực sự tải xuống tệp ngay cả khi chúng tôi nhấp vào liên kết tải xuống (chúng tôi hủy vì nhiều lý do sau đó), nhưng bạn đã thêm số lượng

    [email được bảo vệ]

    Hướng dẫn tuyệt vời và nó thực sự sẽ giúp tôi bắt đầu phần tải xuống trên trang web của mình

    mrteetd

    Tôi đã cài đặt tập lệnh này trên trang web của mình và tôi muốn thêm hiệu ứng di chuột qua để hiển thị mô tả tệp cho tên tệp trên máy chủ của tôi. Tôi đã thấy cách MadTogger thực hiện và nó trông khá ổn, nhưng để giảm thiểu dung lượng, tôi hy vọng ai đó có thể giúp tôi với hiệu ứng di chuột qua. Vì tên của tệp không thực sự có trong tệp php nên tôi khá khó sử dụng nó. Bất kỳ đề nghị tôi sẽ đánh giá cao. Nhân tiện, kịch bản tuyệt vời

    tìm kiếm video

    cảm ơn tôi có thể làm cái này để xem không ??

    Hugo Richel

    Xuất sắc. Một hướng dẫn tuyệt vời một lần nữa. theo kịp. D

    kerron

    Làm cách nào tôi có thể giới hạn nó để một người chỉ có thể tải xuống một lần cho mỗi tệp?

    Brett Widmann

    Đây là một hướng dẫn tuyệt vời. Cám ơn vì đã chia sẻ

    cây thạch nam

    @Jason
    Rất thích xem một cách để theo dõi xem ai đang tải xuống

    Đúng
    Đây chính xác là truy vấn của tôi. Có lẽ chúng ta có thể cùng nhau tham gia và nhờ Martin làm việc đó (tôi chắc rằng có những người khác cũng sẽ quan tâm đến việc đó)

    tự nhiên

    hướng dẫn rất hay. Cảm ơn rất nhiều vì đã chia sẻ phương pháp với chúng tôi

    Thomas

    chào Martin. Cảm ơn cho hướng dẫn này. Nó giúp tôi với dự án khóa học của tôi trong học viện của tôi
    Màn hình kết quả

    http. //img. sxsoft. ru/v. php?id=1ea48da84222409421a92c8b1e68c5d5. png

    tomcent

    Cảm ơn bạn rất nhiều cho hướng dẫn này
    Tôi đã sao chép các tệp vào trang web của mình (trích dẫn sở thích phi thương mại), chỉnh sửa bố cục của trang một chút (tiêu đề đã thay đổi, xóa liên kết "quay lại hướng dẫn", v.v.)
    Nhưng ở phía dưới vẫn có một liên kết đến trang này như lời cảm ơn của tôi đến các bạn
    Gửi email cho tôi nếu bạn muốn liên kết đến trang

    tomcent

    macvajal

    Tôi muốn xem một cái gì đó, vì tôi có thể chia các bản tải xuống thành các thư mục, ý tôi là trong thư mục xuất hiện cấu hình. thư mục php $ = 'tệp',

    Bây giờ tôi cần tải các tệp từ nhiều thư mục và chúng có thể được chia theo cách này

    BRONES

    Đó là một hướng dẫn tuyệt vời. tuyệt vời nó hoạt động cho trang web của tôi. Cảm ơn

    Alx

    Tôi chỉ có một câu hỏi về CSS. tôi muốn làm p. Liên hệ với chúng tôi ở cuối trang (nguyên trạng) mà không che các thành phần khác của trang khi tôi thay đổi kích thước trang tại trình duyệt của mình. Tôi đã cố gắng thay đổi phần tử vị trí nhưng toàn bộ phần không ở dưới cùng

    Có giải pháp đơn giản nào không?

    alex

    Bất kỳ cách nào để đi sâu vào các thư mục. Vì vậy, nếu có một thư mục được liệt kê, tôi có thể nhấp vào nó và mở nó, sau đó tải xuống các tệp được liệt kê. ngay bây giờ nó nghĩ các thư mục là các tệp

    Alex

    hướng dẫn tuyệt vời. Cám ơn vì cái này

    Nhưng câu hỏi của tôi sẽ là một cái gì đó như thế này

    Bất cứ khi nào bạn nhấp vào nút tải xuống, bộ đếm sẽ tăng lên một. Tuy nhiên, có bất kỳ khả năng nào mà bộ đếm không tăng lên nếu bạn tải xuống tệp từ cùng một IP không?

    Cảm ơn
    Alex

    Alex

    Hoặc có thể để tích hợp một số biểu mẫu phản hồi để quá trình tải xuống chỉ hoạt động nếu phản hồi được gửi. D

    nhiều nắng

    công việc tốt đẹp. Cảm ơn

    NICO

    Tôi gặp vấn đề là nó không hoạt động khi cố tải xuống các tệp PDF
    Tôi đã mất một thời gian để tìm ra, nhưng cuối cùng đã thay đổi
    tập tin htaccess để

    < tập tin. >
    Ứng dụng ForceType/octet-stream
    Bộ tiêu đề đính kèm Nội dung-Bố trí

    đã làm công việc

    NICO

    nguyệt quế

    CHÀO

    Cám ơn vì cái này. Tôi không cập nhật bảng mặc dù bảng dường như được tạo chính xác và cơ sở dữ liệu đang được kết nối với (tôi cho rằng điều này vì tôi thấy lỗi nếu tôi cố tình thay đổi mật khẩu cơ sở dữ liệu không chính xác)

    Nếu tôi truy cập tải xuống. php bằng trình duyệt web, nó thông báo tham số không chính xác, tôi không chắc liệu điều này có phải là sự cố hay đó là dự kiến?

    jmv38

    Martin, tôi muốn cảm ơn bạn rất nhiều. Tôi hầu như không biết gì về PHP, nhưng nhờ ví dụ tuyệt vời của bạn, tôi đã có thể từ iPad của mình để xây dựng một trang web theo dõi lượt tải xuống của người dùng của tôi. Trước đây tôi đã chia sẻ mã mà không biết có ai đang sử dụng nó không. Gói hướng dẫn và mã này rất dễ sử dụng. Cảm ơn một lần nữa

    tháng tám

    Tôi đang cố kết nối hệ thống bảng trượt Đăng nhập của bạn với trình quản lý tải xuống này. Có một số vấn đề nhưng tôi sẽ đến đó. Trang web của bạn và những thứ bạn đặt trên đó thật tuyệt vời. Cảm ơn rất nhiều

    Aleš

    Cảm ơn vì mã. Làm thế nào để bạn yêu cầu trang truy cập vào. htaccess bên trong thư mục tệp? . Cảm ơn

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

    php $name= $_GET['nama']; . Chuyển tập tin'); . ứng dụng/octet-stream'); . tập tin đính kèm;

    Làm cách nào để tải lên và tải xuống tệp trong PHP MySQL?

    Tải lên tệp PHP .
    Định cấu hình "php. ini" Tập tin. Đầu tiên, đảm bảo rằng PHP được cấu hình để cho phép tải tệp lên. .
    Kiểm tra xem tệp đã tồn tại chưa. Bây giờ chúng ta có thể thêm một số hạn chế. .
    Kích thước tệp giới hạn. Trường nhập tệp trong biểu mẫu HTML của chúng tôi ở trên được đặt tên là "fileToUpload". .
    Loại tệp giới hạn. .
    Hoàn thành tải lên tệp PHP Script

    Làm cách nào để tạo một tệp có thể tải xuống bằng PHP?

    PHP cho phép bạn tải xuống tệp dễ dàng bằng hàm readfile() tích hợp. Hàm readfile() đọc một tệp và ghi nó vào bộ đệm đầu ra. .
    tiêu đề ('Loại nội dung. ứng dụng/octet-stream');
    tiêu đề ("Mã hóa chuyển nội dung. utf-8");

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

    Chúng tôi sẽ sử dụng chức năng libs của FPDF để tạo tệp pdf có đầu trang và chân trang. .
    Bước 1. Chúng ta sẽ tạo bảng employee vào cơ sở dữ liệu MySQL
    Bước 2. Hãy kết nối cơ sở dữ liệu MySQL với PHP. Chúng tôi sẽ tạo kết nối. .
    Bước 3. Chúng tôi sẽ tạo generate_pdf. php và thêm mã bên dưới
    Bước 4. Chúng tôi sẽ tạo chỉ mục