亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP實現(xiàn)文件上傳與下載的示例代碼

 更新時間:2023年12月15日 10:54:09   作者:代碼煉金術(shù)  
這篇文章主要為大家詳細介紹了PHP實現(xiàn)文件上傳與下載功能的相關(guān)知識,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

PHP文件上傳下載

1、環(huán)境配置

修改 PHP.ini 配置文件可以定制上傳機制,通過 phpinfo() 函數(shù)可以查看到 PHP.ini 文件所在位置。

配置說明
file_uploads是否允許上傳文件,On 開啟 Off 禁止上傳
upload_tmp_dir文件上傳過程中臨時保存的目錄,默認保存位置為 /tmp
upload_max_filesize允許上傳的最大文件大小,可以使用 K、M、G 單位如 2M
post_max_sizePHP 將接受的最大 POST 數(shù)據(jù)大小,包括上傳文件、表單數(shù)據(jù)。所以 post_max_size 要大于 upload_max_filesize
max_file_uploads單個請求時,允許上傳的最大文件數(shù)量

2、超全局數(shù)組

上傳的文件保存在 $_FILES 超全局數(shù)組中,具體參數(shù)說明如下:

選項說明
tmp_name臨時文件名
name上傳文件原文件名
type文件 MIME 類型
error錯誤編號
size文件大小,單位字節(jié)
//index.html 
<form action="./server.php" enctype="multipart/form-data" method="post">
        <label>
            <input type="file" name="files" value="" >
        </label>
        <button type="submit">提交</button>
 </form>
     
 //server.php
   print_r($_FILES); 

/*

Array
(
    [files] => Array
        (
            [name] => Key.txt
            [full_path] => Key.txt
            [type] => text/plain
            [tmp_name] => C:\wamp64\tmp\php665C.tmp
            [error] => 0
            [size] => 54
        )

)

*/

3、錯誤說明

上傳出錯會在$_FILES[‘error’] 選項中體現(xiàn),具體錯誤說明如下:

UPLOAD_ERR_OK (0): 沒有錯誤,文件上傳成功。

UPLOAD_ERR_INI_SIZE (1): 上傳的文件大小超過了php.ini中upload_max_filesize指令所設(shè)置的大小限制。

UPLOAD_ERR_FORM_SIZE (2): 上傳的文件大小超過了HTML表單中MAX_FILE_SIZE指令所設(shè)置的大小限制。

UPLOAD_ERR_PARTIAL (3): 文件只有部分被上傳。

UPLOAD_ERR_NO_FILE (4): 沒有文件被上傳。

UPLOAD_ERR_NO_TMP_DIR (6): 找不到臨時文件夾。

UPLOAD_ERR_CANT_WRITE (7): 文件寫入失敗。

UPLOAD_ERR_EXTENSION (8): 由于PHP擴展的限制,文件上傳被停止。

4、上傳安全

檢測文件是否是合法的上傳文件,以保證安全。

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 檢查文件是否成功上傳
    if (isset($_FILES['file_name']) && $_FILES['file_name']['error'] === UPLOAD_ERR_OK) {
        // 文件上傳成功
        $tempFilePath = $_FILES['file_name']['tmp_name'];
        $fileName = $_FILES['file_name']['name'];

        // 執(zhí)行進一步的處理操作
        // ...

        echo "文件上傳成功!";
    } else {
        // 文件上傳失敗或未選擇文件
        echo "文件上傳失?。?;
    }
}
?>

5、處理類

下面是支持單文件、多文件上傳的處理類。

index.html

<form action="./server.php" method="post" enctype="multipart/form-data">
        <input type="file" name="image">
        <input type="file" name="image[]">
        <input type="file" name="image[]">
        <button class="btn">提交</button>
</form>

server.php

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 檢查是否有文件上傳
    if (isset($_FILES['images'])) {
        $fileCount = count($_FILES['images']['name']);
        
        // 遍歷每個上傳的文件
        for ($i = 0; $i < $fileCount; $i++) {
            // 檢查文件是否成功上傳
            if ($_FILES['images']['error'][$i] === UPLOAD_ERR_OK) {
                $tempFilePath = $_FILES['images']['tmp_name'][$i];
                $fileName = $_FILES['images']['name'][$i];

                // 執(zhí)行進一步的處理操作
                // ...

                echo "文件 $fileName 上傳成功!<br>";
            } else {
                // 文件上傳失敗或未選擇文件
                echo "文件上傳失??!<br>";
            }
        }
    } else {
        // 沒有文件被上傳
        echo "沒有文件被上傳!<br>";
    }
}

6、文件下載

$file = "dog.jpg";
$fileName = basename($file);
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename={$fileName}");
header("Accept-ranges: bytes");
header("Content-Length: " . filesize($file));
readfile($file);

到此這篇關(guān)于PHP實現(xiàn)文件上傳與下載的示例代碼的文章就介紹到這了,更多相關(guān)PHP文件上傳與下載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論