繁体   English   中英

如何在php中计算上传文件的数量

[英]how to count number of uploaded files in php

如何计算上传文件的数量? 这是我的表格:

<div id="dragAndDropFiles" class="uploadArea">
        <h1>Drop Images Here</h1>
    </div>
    <form id="sfmFiler" class="sfmform" method="post" enctype="multipart/form-data">
        <input type="file" name="file" id="file" multiple />
        <input type="submit" name="submitHandler" id="submitHandler" class="buttonUpload" value="Upload">
    </form>

这是上传文件的 php 片段:

if($_SERVER['REQUEST_METHOD'] == "POST") {
    $tmpFilePath = $_FILES['file']['tmp_name'];
    $newFilePath = $dir.'/' . $_FILES['file']['name'];
    if(move_uploaded_file($tmpFilePath, $newFilePath)) {
      echo "xxx files are successfully uploaded";
    }
} 

在此代码中,您只获得一个文件,这就是您获得计数结果 1 的原因。如果更改输入文件名,如“file []”

  <input type="file" name="file[]" id="file" multiple />

然后使用下面的行代码,你会得到你想要的结果。 导致它需要一个数组来保存输入数据。

 <?php echo count($_FILES['file']['name']); ?>

谢谢,我尝试在我的系统中得到结果。

朋友说得对。 上面的答案总是返回 1。

尝试:

echo count(array_filter($_FILES['file']['name']))

反正为我工作。

_t

使用array_filter函数它可以工作

尝试

$countfiles = count(array_filter($_FILES['file']['name']));

如果为 NULL,则返回 0,如果上传了 1 个文件,则返回 1,依此类推。

您可以使用count功能:

$no_files = count($_FILES);

如果没有选择文件并且您的文件数为 1,则可以在移动文件之前使用此行:

if (!empty($_FILES['file']['tmp_name'][0])) { 
    for($i=0;$i<$countfiles;$i++){

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM