【发布时间】:2017-06-12 10:46:28
【问题描述】:
我正在尝试列出通过表单上传的图像的所有文件名,然后通过电子邮件发送。
文件上传.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="Upload" class="formtext" id="UploadBtn">
</form>
上传.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));
我尝试了多种方法来访问上传文件的“名称”(上面的代码是其中一种尝试),但无济于事。
【问题讨论】:
-
它是一个正常的数组,有什么问题?
-
您正试图过早地确定扩展名。
$_FILES['filesupl']['name']是一个数组。 -
我正在尝试使用 foreach 在电子邮件中输出文件名,但我在访问从嵌套数组上传的每个文件的该变量时遇到问题。每次代码执行时,我都会得到一个空结果或单词“Array” 5 次。
标签: php arrays forms foreach nested