PHP count()计数不正确
我正在尝试将多个文件上载到一个目录。 我“编写”的代码适用于一个文件,但是当我尝试上载多个文件时,它不起作用。我已经试着确定错误在哪里,我相信这与计数有关。虽然当我尝试回显正在计数的文件数时,无论选择了多少个文件,我总是得到“1”。我知道这只适用于一个文件,因为我返回的变量始终为“1”,因此只适用于一个文件 为了收集文件,我使用html表单和post方法 html:PHP count()计数不正确,php,upload,Php,Upload,我正在尝试将多个文件上载到一个目录。 我“编写”的代码适用于一个文件,但是当我尝试上载多个文件时,它不起作用。我已经试着确定错误在哪里,我相信这与计数有关。虽然当我尝试回显正在计数的文件数时,无论选择了多少个文件,我总是得到“1”。我知道这只适用于一个文件,因为我返回的变量始终为“1”,因此只适用于一个文件 为了收集文件,我使用html表单和post方法 html: HTML文件上传 要上载的文件: 或者把文件放在这里 上传文件 我使用的javascript支持拖放功能,源于: 罪魁祸首
HTML文件上传
要上载的文件:
或者把文件放在这里
上传文件
我使用的javascript支持拖放功能,源于:
罪魁祸首
PHP:
if(isset($\u FILES['fileselect']['tmp\u name'])){
//上载的文件数
$num_files=count($_files['fileselect']['tmp_name']);
echo$num_文件;
/**循环遍历文件数组***/
(i=0;i 350000美元){
$messages[]=“您的文件太大。
”;
$ok=0;
}
//这是我们的限制文件类型条件
如果($uploaded_type==“text/php”){
$messages[]=“无PHP文件
”;
$ok=0;
}
//在这里,我们检查$ok是否未被错误设置为0
如果($ok==0){
$messages[]=“抱歉,您的文件未上载”;
}
//如果一切正常,我们尝试上传它
否则{
如果(move_uploads_file($_FILES['fileselect']['tmp_name'][$i],“uploads/{$newImg}”){
回显“文件”.basename($\u文件['uploadedfile']['name'][$i])”已上载;
回声“
”;
//echo$文件类型;
//回声“
”;
//echo$unique;
//回声“施梅克尔!”;
//回声“
”;
//echo$文件大小;
//回声“
”;
//echo$文件名;
$insertSQL=“插入采访\媒体\图像集”;
$insertSQL.=“文件类型=”$the_file_type',”;
$insertSQL.=“fileRef=”$newImg',”;
$insertSQL.=“文件大小=”$the_file_size',”;
$insertSQL.=“文件名=”$the_file_name';
echo$insertSQL;
//mysql\u查询($insertSQL);
//echo mysql_error();
}否则{
$messages[]=“很抱歉,上载文件时出现问题。”;
}
}
}
}
}
我创建了一个文件,内容如下,运行PHP版本5.5.15,并且正确计数:
<?php
if(isset($_FILES['fileselect']['tmp_name']))
{
echo "<pre>"; print_r($_FILES); echo "</pre>";
echo "Number of files uploaded: " . count($_FILES['fileselect']['name']);
}
?>
<form id="upload" action="files_upload.php" method="POST" enctype="multipart/form-data">
<fieldset>
<legend>HTML File Upload</legend>
<input type="hidden" id="MAX_FILE_SIZE" name="MAX_FILE_SIZE" value="300000" />
<div>
<label for="fileselect">Files to upload:</label>
<input type="file" id="fileselect" name="fileselect[]" multiple="multiple" />
<div id="filedrag">or drop files here</div>
</div>
<div id="submit">
<button type="submit">Upload Files</button>
</div>
</fieldset>
</form>
HTML文件上传
要上载的文件:
或者把文件放在这里
上传文件
您的代码在我的案例中运行,$num\u文件在计数后返回真值
还有一件事要做,就是从for循环中删除“=”,然后这样写
$_FILES['filename']['tmp_name'][3].
我希望这能帮助你
对不起我的英语 您是否打印($\u文件)以查看它实际包含的内容?我相信这是
$\u FILES['fileselect'][$I]['attribute']
而不是$\u FILES['fileselect']['attribute'][$I]
上面的所有内容:“for($I=0;$I我的第一个猜测是PHPcount()
函数中没有bug尝试这样做:$\u FILES['fileselect'[$I]['tmp\u name']
或count($\u FILES'fileselect']))
谢谢大家。虽然从“$num\u files=count($num\u files['fileselect']['tmp\u name'])中去掉['tmp\u name'”),现在得到5,但仍然只将第一个条目添加到目录中。您需要更好地解释您的答案
<?php
if(isset($_FILES['fileselect']['tmp_name']))
{
echo "<pre>"; print_r($_FILES); echo "</pre>";
echo "Number of files uploaded: " . count($_FILES['fileselect']['name']);
}
?>
<form id="upload" action="files_upload.php" method="POST" enctype="multipart/form-data">
<fieldset>
<legend>HTML File Upload</legend>
<input type="hidden" id="MAX_FILE_SIZE" name="MAX_FILE_SIZE" value="300000" />
<div>
<label for="fileselect">Files to upload:</label>
<input type="file" id="fileselect" name="fileselect[]" multiple="multiple" />
<div id="filedrag">or drop files here</div>
</div>
<div id="submit">
<button type="submit">Upload Files</button>
</div>
</fieldset>
</form>
for( $i=0; $i<$num_files; $i++)
$_FILES['filename']['tmp_name'][3].