You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plupload大尺寸视频分片上传后无法合并问题求助

Plupload大尺寸视频分片上传后无法合并问题求助

我现在在Windows 11的WAMP服务器上开发网站,用Plupload来上传大尺寸视频文件,同时还要提交其他表单字段。现在遇到个头疼的问题:分片上传是成功的,但上传后的.part文件没法自动合并,上传文件夹里全是比如myvideo.mp4.part这类分片文件(比如传75MB的mp4,就会生成多个大小不一的.part文件)。

已经尝试过的解决办法

  • 把php.ini里的upload_max_filesize和post_max_size都改成了2000M,重启Apache后重试,没用
  • 也在video-upload.php脚本里加了这些配置,还是没解决问题

我当前的代码

index.php

<?php 
include("db.php"); 
if ((isset($_POST['action'])) && ($_POST['action']=="add-video")){ 
    $lecturer_name = $database->filter($_POST["lecturer_name"]); 
    $lecturer_mobile = $database->filter($_POST["lecturer_mobile"]); 
    $lecturer_email = $database->filter($_POST["lecturer_email"]); 
    $video_url = $database->filter($_POST["video_url"]); 
    /* Rest PHP Validation And Insert Data in Mysql Database Table Code Here */ 
} 
?> 
<!DOCTYPE html> 
<html> 
<head> 
    <script src="js/jquery.min.js"></script> 
    <link type="text/css" rel="stylesheet" href="src/plugins/plupload/js/jquery.ui.plupload/css/jquery.ui.plupload.css" media="screen" /> 
    <link type="text/css" rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/smoothness/jquery-ui.min.css" media="screen" /> 
    <script src="src/plugins/plupload/js/plupload.full.min.js"></script> 
    <script type="text/javascript" src="src/plugins/plupload/js/jquery.ui.plupload/jquery.ui.plupload.min.js" charset="UTF-8"></script> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js" charset="UTF-8"></script> 
    <script src="src/plugins/plupload/jquery.plupload.queue.js"></script> 
    <script type="text/javascript"> 
    // Initialize the widget when the DOM is ready 
    $(function() { 
        $("#uploader").plupload({ 
            // General settings 
            runtimes : 'html5,flash,silverlight,html4', 
            url : "video-upload.php", 
            // Maximum file size 
            max_file_size : '999mb', 
            chunk_size: '1mb', 
            // Specify what files to browse for 
            filters : [ 
                {title : "Image files", extensions : "jpg,jpeg,gif,png"}, 
                {title : "Video files", extensions : "mp4,avi,mpeg,mpg,mov,wmv"}, 
                {title : "Zip files", extensions : "zip"}, 
                {title : "Document files", extensions : "pdf,docx,xlsx"} 
            ], 
            // Rename files by clicking on their titles 
            rename: true, 
            // Sort files 
            sortable: true, 
            // Enable ability to drag'n'drop files onto the widget (currently only HTML5 supports that) 
            dragdrop: true, 
            // Views to activate 
            views: { 
                list: true, 
                thumbs: true, 
                // Show thumbs 
                active: 'thumbs' 
            }, 
            // Flash settings 
            flash_swf_url : 'src/plugins/plupload/js/Moxie.swf', 
            // Silverlight settings 
            silverlight_xap_url : 'src/plugins/plupload/js/Moxie.xap', 
            init : { 
                FileUploaded: function(up, file, info) { 
                    $("#video_url").val(file.name); 
                } 
            } 
        }); 
    }); 
    </script> 
</head> 
<body> 
    <form id="main-group-addition" action="" method="post" enctype="multipart/form-data"> 
        <input type="hidden" name="action" value="add-video" /> 
        <div class="form-group"> 
            <label>Lecturer Name *</label> 
            <input type="text" name="lecturer_name" class="form-control" id="lecturer_name" value="<?php if(isset($lecturer_name)){ echo $lecturer_name;}?>" > 
        </div> 
        <div class="form-group"> 
            <label>Lecturer Mobile *</label> 
            <input type="text" name="lecturer_mobile" class="form-control" id="lecturer_mobile" value="<?php if(isset($lecturer_mobile)){ echo $lecturer_mobile;}?>" > 
        </div> 
        <div class="form-group"> 
            <label>Lecturer Email *</label> 
            <input type="text" name="lecturer_email" class="form-control" id="lecturer_email" value="<?php if(isset($lecturer_email)){ echo $lecturer_email;}?>" > 
        </div> 
        <!-- Video Upload Div Used With plupload. First Video Uploaded And File Name is Inserted via above Javascript Bind option in Below "video_url" input field --> 
        <div class="form-group"> 
            <div id="uploader"> 
                <p>Your browser doesn't have Flash, Silverlight or HTML5 support.</p> 
            </div> 
            <input type="hidden" name="video_url" id="video_url" value="" /> 
        </div> 
    </form> 
</body> 
</html>

补充疑问

我突然反应过来,负责处理分片上传和合并逻辑的video-upload.php代码我没贴出来,这应该是核心环节。是不是我后端完全没写合并分片的代码,才导致.part文件没法合并成完整文件?有没有大佬能帮我排查问题,或者给我一个适配当前场景的后端分片合并示例代码?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 09:28:03