php - 克隆输入字段后获取文件数据

我有带有输入文件的表单,可以通过特定按钮进行克隆。


当我选择某个文件,克隆输入字段,然后选择新文件(在新输入字段中)并提交时,我没有获取ajax文件中的所有第一个文件数据。


这是主页中的 html:


<a href="#" class="clone-ele-btn" data-target="clone_box" data-des="clone_des">Clone</a>

<form action="#" method="post" enctype="multipart/form-data">


    <span id="clone_box">

        <input type='file' name='file[]' />

    </span>


    <span id="clone_des"></span>    


    <a href="#" class="new-files-btn">Submit</a>

    

</form>

查询:


// CLONE FILE INPUT FIELD

$(document).on("click", ".clone-ele-btn", function(e){


    var target = $(this).data("target");

    var des = $(this).data("des");

    

    $( "#" + target ).clone().appendTo( "#" + des );


    e.preventDefault(); 

});


// UPLOAD FILES

$(document).on("click", ".new-files-btn", function(e){


    var form = $(this).closest('form')[0]; 

    var formData = new FormData(form);

    

    

    $.ajax ({

        type: 'POST',

        url: 'ajax/files-control.php',

        data: formData,

        dataType: 'json',

        contentType: false,

        cache: false,

        processData:false

        }).done(function(data) 

        { 

        ....

        ...

        ..

文件控制.php:


<?PHP

   var_dump ($_FILES);

?>

网络调试:


C:\wamp3\www\folder\ajax\files-control.php:13:

array (size=1)

  'file' => 

    array (size=5)

      'name' => 

        array (size=2)

          0 => string 'IMG_8913.JPG' (length=12)

          1 => string 'I-dont-have.jpg' (length=36)

      'type' => 

        array (size=2)

          0 => string '' (length=0)

          1 => string 'image/jpeg' (length=10)

      'tmp_name' => 

        array (size=2)

          0 => string '' (length=0)

          1 => string 'C:\wamp3\tmp\php36B6.tmp' (length=24)

      'error' => 

        array (size=2)

          0 => int 1

          1 => int 0

      'size' => 

        array (size=2)

          0 => int 0

          1 => int 50906


守着星空守着你
浏览 78回答 1
1回答

翻翻过去那场雪

未经测试,但尝试创建新的输入字段而不是克隆旧的输入字段。let el = document.createElement('input'); el.type = 'file'; el.name = 'file[]'; document.getElementById('clone_box').appendChild(el);jQuery 方式$("#clone_box").append('<input type="file" name="file[]">');更新造成问题的不是字段,而是文件本身。它太大并且超出了 php.ini上传限制。UPLOAD_ERR_INI_SIZE值:1;上传的文件超出了 php.ini 中的 upload_max_filesize 指令。因此,您需要调整 php.ini 设置或在 .htaccess 文件中重载它。
打开App,查看更多内容
随时随地看视频慕课网APP