首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 實作視頻檔案上傳完整實戰範例

     編輯:PHP 綜合知識

視頻檔案上傳是 PHP 開發中常見的功能需求。雖然本質上視頻也是檔案,可沿用一般檔案上傳邏輯,但視頻檔案通常體積龐大、上傳耗時較久,且 PHP 設定檔對上傳大小有限制。若需更穩健的大檔案上傳方案,建議採用 FTP 上傳方式。本文提供一個完整的視頻上傳實作範例供參考。

一、PHP 後端處理程式碼

';
    if ($ok === true) {
        echo '' . $message . '';
    } else {
        echo '' . $message . '';
    }
    echo '';
}

// 處理表單提交
$action = isset($_POST['action']) ? $_POST['action'] : '';
$file   = isset($_POST['file']) ? $_POST['file'] : '';
if ($file !== '') $file .= '/';

$message_true  = '';
$message_false = '';

switch ($action) {
    case 'upload':
        chmod(FILE_UPLOAD_DIR, 0777);
        for ($nb = 1; $nb <= MUILTI_FILE_UPLOAD; $nb++) {
            // 檢查檔案是否存在且大小大於 10 bytes
            if ($_FILES['file_' . $nb]['size'] >= 10) {
                // 檢查檔案大小限制
                if ($_FILES['file_' . $nb]['size'] <= MAX_SIZE_FILE_UPLOAD) {
                    // 檢查副檔名是否在黑名單中
                    $ext = ereg_replace('^[[:alnum:]]([-_.]?[[:alnum:]])*\.', '.', $_FILES['file_' . $nb]['name']);
                    if (!in_array($ext, $array_extention_interdite)) {
                        // 取得最終檔名(優先使用用戶指定名稱)
                        if ($_POST['file_name_' . $nb] !== '') {
                            $file_name_final = $_POST['file_name_' . $nb] . $ext;
                        } else {
                            $file_name_final = $_FILES['file_' . $nb]['name'];
                        }
                        // 檔名轉換與過濾
                        $file_name_final = strtr($file_name_final, 'aaaaaa', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
                        $file_name_final = preg_replace('/([^.a-z0-9]+)/i', '_', $file_name_final);
                        $_FILES['file_' . $nb]['name'] = $file_name_final;

                        // 執行上傳
                        move_uploaded_file(
                            $_FILES['file_' . $nb]['tmp_name'],
                            FILE_UPLOAD_DIR . $file . $file_name_final
                        );
                        $message_true .= '檔案上傳成功:' . $_FILES['file_' . $nb]['name'] . '
'; } else { $message_false .= '檔案上傳失敗(副檔名不允許):' . $_FILES['file_' . $nb]['name'] . '
'; } } else { $message_false .= '檔案大小超過限制 ' . (MAX_SIZE_FILE_UPLOAD / 1000) . 'KB:"' . $_FILES['file_' . $nb]['tmp_name'] . '"
'; } } } break; } ?>

二、HTML 前端表單程式碼




PHP 檔案上傳




上傳檔案: 新檔名(含副檔名):
上傳目的地址:

關鍵技術點補充說明

  • 大檔案上傳調優:需修改 php.ini 中的 upload_max_filesize、post_max_size、max_execution_time、max_input_time 等參數。
  • 安全性強化:副檔名黑名單僅為基礎防護,生產環境建議結合 MIME 類型驗證、檔案內容掃描、儲存路徑與 Web 根目錄隔離等措施。
  • 進階方案:大型視頻平台建議採用分片上傳、斷點續傳、雲端儲存(如 AWS S3、阿里云 OSS)配合 CDN 加速。

本範例展示了 PHP 視頻上傳的基礎實作流程,可作為進一步開發的起點。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved