Php 如何从$\u文件嵌套数组中获取文件名
我试图列出所有通过表单上传的图像文件名,然后通过电子邮件发送 fileupload.html:Php 如何从$\u文件嵌套数组中获取文件名,php,arrays,forms,foreach,nested,Php,Arrays,Forms,Foreach,Nested,我试图列出所有通过表单上传的图像文件名,然后通过电子邮件发送 fileupload.html: <form method="post" action="upload.php" enctype="multipart/form-data" id="upload" > <input type="file" name="filesupl[]" multiple id="files" /> <input type="submit" name="UploadBtn" value
<form method="post" action="upload.php" enctype="multipart/form-data" id="upload" >
<input type="file" name="filesupl[]" multiple id="files" />
<input type="submit" name="UploadBtn" value="Upload" class="formtext" id="UploadBtn">
</form>
upload.php:
$art_file = $_FILES['filesupl'];
$filecounter = 1;
$count = 0;
foreach ( $art_file as $i => $art_inner ){
echo $filecounter . ") " . $art_file[$i]['name'] . "<br />"; $filecounter++;
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' and isset($_FILES['filesupl']))
{
$extension = pathinfo($_FILES['filesupl']['name'], PATHINFO_EXTENSION);
// Upload files
// loop all files
foreach ( $_FILES['filesupl']['name'] as $i => $name )
{
// if file not uploaded then skip it
if ( !is_uploaded_file($_FILES['filesupl']['tmp_name'][$i]) )
continue;
// skip large files
if ( $_FILES['filesupl']['size'][$i] >= $max_size )
continue;
// skip unprotected files
if( !in_array(pathinfo($name, PATHINFO_EXTENSION), $extensions) )
continue;
// now we can move uploaded files
if( move_uploaded_file($_FILES["filesupl"]["tmp_name"][$i], $dir . $name) )
$count++;
}
}
echo json_encode(array('count' => $count));
$art_file=$_文件['filesupl'];
$filecounter=1;
$count=0;
foreach($i=>$art\u文件内部){
echo$filecounter.“)”$art_文件[$i]['name']。“
;$filecounter++;
}
如果($\u服务器['REQUEST\u METHOD']='POST'和isset($\u文件['filesupl']))
{
$extension=pathinfo($_文件['filesupl']['name'],pathinfo_扩展名);
//上传文件
//循环所有文件
foreach($_FILES['filesupl']['name']作为$i=>$name)
{
//如果文件未上载,则跳过它
如果(!是上传的文件($文件['filesupl']['tmp\u name'][$i]))
继续;
//跳过大文件
如果($\u文件['filesupl']['size'][$i]>=$max\u大小)
继续;
//跳过未受保护的文件
if(!in_数组(pathinfo($name,pathinfo_扩展名),$extensions))
继续;
//现在我们可以移动上传的文件了
如果(移动上传的文件($文件[“文件上传”][“tmp文件名”][$i],$dir.$name))
$count++;
}
}
echo json_编码(数组('count'=>$count));
我尝试了很多方法来访问上传文件的“名称”(上面的代码就是其中之一),但都没有成功
我正在尝试列出所有上传图像的文件名
如果您的唯一目的是获取上传文件的所有文件名,那么您的代码应该如下所示:
foreach($_FILES['filesupl']['name'] as $name){
// echo $name . '<br />';
}
$count = count($_FILES['filesupl']['name']);
for($i = 0; $i < $count; ++$i){
// if file not uploaded then skip it
if ( !is_uploaded_file($_FILES['filesupl']['tmp_name'][$i]) )
continue;
// skip large files
if ( $_FILES['filesupl']['size'][$i] >= $max_size )
continue;
// get file extension
$extension = pathinfo($_FILES['filesupl']['name'][$i], PATHINFO_EXTENSION);
// skip unprotected files
if( !in_array($extension, $extensions) )
continue;
// now we can move uploaded files
if( move_uploaded_file($_FILES["filesupl"]["tmp_name"][$i], $dir . $_FILES['filesupl']['name'][$i])){
// file has been uploaded
}
}
echo json_encode(array('count' => $count));
我正在尝试列出所有上传图像的文件名
如果您的唯一目的是获取上传文件的所有文件名,那么您的代码应该如下所示:
foreach($_FILES['filesupl']['name'] as $name){
// echo $name . '<br />';
}
$count = count($_FILES['filesupl']['name']);
for($i = 0; $i < $count; ++$i){
// if file not uploaded then skip it
if ( !is_uploaded_file($_FILES['filesupl']['tmp_name'][$i]) )
continue;
// skip large files
if ( $_FILES['filesupl']['size'][$i] >= $max_size )
continue;
// get file extension
$extension = pathinfo($_FILES['filesupl']['name'][$i], PATHINFO_EXTENSION);
// skip unprotected files
if( !in_array($extension, $extensions) )
continue;
// now we can move uploaded files
if( move_uploaded_file($_FILES["filesupl"]["tmp_name"][$i], $dir . $_FILES['filesupl']['name'][$i])){
// file has been uploaded
}
}
echo json_encode(array('count' => $count));
这是一个普通数组,有什么问题吗?您试图确定扩展太快了
$\u FILES['filesupl']['name']
是一个数组。我试图使用foreach在电子邮件中输出文件名,但对于从嵌套数组上载的每个文件,访问该变量时遇到问题。每次代码执行时,我要么得到一个空结果,要么得到5次单词“Array”。这是一个正常的数组,有什么问题吗?您试图过早地确定扩展名$\u FILES['filesupl']['name']
是一个数组。我试图使用foreach在电子邮件中输出文件名,但对于从嵌套数组上载的每个文件,访问该变量时遇到问题。每次代码执行时,我都会得到5次空结果或单词“Array”。谢谢你的建议!我已经实现了建议的第二部分。不幸的是,当我希望获得文件名时(根据您的建议使用foreach),我仍然收到一个空值。@CharlieMarrero在for
循环中,您试图获取文件名的位置,以及如何获取文件名?请粘贴您的代码并在此处提供链接。Rajdeep Paul,这是指向我要输出文件名区域的pastebin链接:(这是upload.php页面的一部分,在文件上传之后)@CharlieMarrero,这是因为您没有将文件名附加到$pobody
。foreach的循环应该是这样的,Rajdeep Paul,谢谢你指出这一点!那肯定不见了。然而,添加后,我仍然收到一封没有列出文件名的电子邮件,即使成功上传了2张图片。谢谢你的建议!我已经实现了建议的第二部分。不幸的是,当我希望获得文件名时(根据您的建议使用foreach),我仍然收到一个空值。@CharlieMarrero在for
循环中,您试图获取文件名的位置,以及如何获取文件名?请粘贴您的代码并在此处提供链接。Rajdeep Paul,这是指向我要输出文件名区域的pastebin链接:(这是upload.php页面的一部分,在文件上传之后)@CharlieMarrero,这是因为您没有将文件名附加到$pobody
。foreach的循环应该是这样的,Rajdeep Paul,谢谢你指出这一点!那肯定不见了。然而,添加它后,我仍然收到一封没有列出文件名的电子邮件,即使在成功上传了2张图片之后。