如何统计PHP中上传的文件?
How to count uploaded files in PHP?
我最新的问题是计算上传的文件。我已经使用 count($_FILES)
完成了此操作,但这是向我显示问题的地方。
它只显示了 3 个文件,这真的很奇怪,因为我认为它完美无缺。
但说到点子上。这是PHP中的代码,以及HTML中的上传文件代码。查看计数函数时,您会发现我还提到了文件名。在我的例子中,这无关紧要,因为即使我只输入 count($_FILES)
它也不起作用。我也试过 var_dump($_FILES);
但它只显示 1 个文件,而不是更多。
$i = 0;
$target = "gallery/";
for($i=0; $i<=count($_FILES['ufile']); $i++) {
if(($_FILES['ufile']['type'][$i]== 'image/jpeg')
||($_FILES['ufile']['type'][$i]== 'image/gif')
||($_FILES['ufile']['type'][$i]== 'image/png')
&&($_FILES['ufile']['size'][$i]<5242880)
&&($_FILES['ufile']['error'][$i] == 0)) {
$image = $_FILES['ufile']["name"][$i];
$temp = explode(".", $_FILES['ufile']["name"][$i]);
$gallery_img = $i . '_' .round(microtime(true)) . '.' . end($temp) ; //gallery is ready
$final_gallery[$i] = $gallery_img;
$tmpFilePath = $_FILES['ufile']['tmp_name'][$i];
move_uploaded_file($tmpFilePath, $target . $gallery_img);
}
}
和HTML:
IMAGES TO GALLERY:<input name="ufile[]" type="file" id="ufile[]" multiple><br><br>
试试这个
count($_FILES['ufile']['name'])
伙计!这应该适合你
for($i=0; $i<=count($_FILES); $i++) {
你应该试试这个
for ($i=0; $i <= count($_FILES['ufile']['name']); $i++)
count($_FILES)
在这种情况下将显示 1,因为您只有 type = file
的输入。如果您要添加另一个输入文件类型,如下所示,它将显示 2.
//count($_FILES) will be 2 in this case.
<form method="post" enctype="multipart/form-data">
<input name="ufile[]" type="file" id="ufile[]" multiple><br><br>
<input name="extrafile" type="file" id="udfile[]" multiple><br><br>
<input type="submit" name="submit" value="upload">
</form>
现在每个发布时输入的文件都有5个元素,分别是name
、type
、tmp_name
、error
和size
。因此,如果您执行 count($_FILES['ufile'])
,它将始终显示 5.
所以在这种情况下计算选择上传的文件数量的正确答案是 count($_FILES['ufile']['name'])
?>
<form method="post" enctype="multipart/form-data">
<input name="ufile[]" type="file" id="ufile[]" multiple><br><br>
<input type="submit" name="submit" value="upload">
</form>
我最新的问题是计算上传的文件。我已经使用 count($_FILES)
完成了此操作,但这是向我显示问题的地方。
它只显示了 3 个文件,这真的很奇怪,因为我认为它完美无缺。
但说到点子上。这是PHP中的代码,以及HTML中的上传文件代码。查看计数函数时,您会发现我还提到了文件名。在我的例子中,这无关紧要,因为即使我只输入 count($_FILES)
它也不起作用。我也试过 var_dump($_FILES);
但它只显示 1 个文件,而不是更多。
$i = 0;
$target = "gallery/";
for($i=0; $i<=count($_FILES['ufile']); $i++) {
if(($_FILES['ufile']['type'][$i]== 'image/jpeg')
||($_FILES['ufile']['type'][$i]== 'image/gif')
||($_FILES['ufile']['type'][$i]== 'image/png')
&&($_FILES['ufile']['size'][$i]<5242880)
&&($_FILES['ufile']['error'][$i] == 0)) {
$image = $_FILES['ufile']["name"][$i];
$temp = explode(".", $_FILES['ufile']["name"][$i]);
$gallery_img = $i . '_' .round(microtime(true)) . '.' . end($temp) ; //gallery is ready
$final_gallery[$i] = $gallery_img;
$tmpFilePath = $_FILES['ufile']['tmp_name'][$i];
move_uploaded_file($tmpFilePath, $target . $gallery_img);
}
}
和HTML:
IMAGES TO GALLERY:<input name="ufile[]" type="file" id="ufile[]" multiple><br><br>
试试这个
count($_FILES['ufile']['name'])
伙计!这应该适合你
for($i=0; $i<=count($_FILES); $i++) {
你应该试试这个
for ($i=0; $i <= count($_FILES['ufile']['name']); $i++)
count($_FILES)
在这种情况下将显示 1,因为您只有 type = file
的输入。如果您要添加另一个输入文件类型,如下所示,它将显示 2.
//count($_FILES) will be 2 in this case.
<form method="post" enctype="multipart/form-data">
<input name="ufile[]" type="file" id="ufile[]" multiple><br><br>
<input name="extrafile" type="file" id="udfile[]" multiple><br><br>
<input type="submit" name="submit" value="upload">
</form>
现在每个发布时输入的文件都有5个元素,分别是name
、type
、tmp_name
、error
和size
。因此,如果您执行 count($_FILES['ufile'])
,它将始终显示 5.
所以在这种情况下计算选择上传的文件数量的正确答案是 count($_FILES['ufile']['name'])
?>
<form method="post" enctype="multipart/form-data">
<input name="ufile[]" type="file" id="ufile[]" multiple><br><br>
<input type="submit" name="submit" value="upload">
</form>