如何在php中计算上传文件的数量
Posted
技术标签:
【中文标题】如何在php中计算上传文件的数量【英文标题】:how to count number of uploaded files in php 【发布时间】:2021-10-25 02:21:36 【问题描述】:如何计算上传文件的数量? 这是我的表格:
<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";
【问题讨论】:
试试这个:count($_FILES['file']['name'])
echo count($_FILES);
@Saty 这也总是给我第一名
文件名中需要数组为name="file[]"
【参考方案1】:
在这段代码中你只得到一个文件,这就是你得到计数结果1的原因。如果改变你的输入文件名,比如“file[]”
<input type="file" name="file[]" id="file" multiple />
然后使用下面的行代码,你会得到你想要的结果。因为它需要一个数组来保存输入数据。
<?php echo count($_FILES['file']['name']); ?>
谢谢,我尝试在我的系统中得到结果。
【讨论】:
我可能错了,但 count 将始终为 1 或更大,除非参数为 NULL,因此即使没有上传文件,count() 仍然等于 1【参考方案2】:朋友是正确的。上面的答案总是返回 1。
试试:
echo count(array_filter($_FILES['file']['name']))
无论如何都为我工作。
_t
【讨论】:
【参考方案3】:检查这个答案
<?php echo count($_FILES['file']['name']); ?>
php multiple file uploads get the exact count of files a user uploaded and not the count of all input fields in the array
【讨论】:
如果你回答比说清楚。 op需要完全的支持。继续。【参考方案4】:使用array_filter
函数就可以了
试试
$countfiles = count(array_filter($_FILES['file']['name']));
NULL 返回 0,上传 1 个文件返回 1,以此类推
【讨论】:
以上是关于如何在php中计算上传文件的数量的主要内容,如果未能解决你的问题,请参考以下文章
文件上传知多少,PHP面试学到老,虽然够用也挺好,知识体系也重要