我想在$ _FILES []數組中添加循環。我試過$count= count($_FILES['files'][name])
,然後在它周圍加上循環for($i=0; $i<=$count; $i++)
,但它沒有給我想要的輸出。
我想要僅從用戶正在上傳的文件中加入循環,現在它正在計算表單中可用的所有'文件'。
請告訴我一種方法,只計算上傳的文件並循環播放它們。
我想在$ _FILES []數組中添加循環。我試過$count= count($_FILES['files'][name])
,然後在它周圍加上循環for($i=0; $i<=$count; $i++)
,但它沒有給我想要的輸出。
我想要僅從用戶正在上傳的文件中加入循環,現在它正在計算表單中可用的所有'文件'。
請告訴我一種方法,只計算上傳的文件並循環播放它們。
循環有史以來$_FILES
陣列,並使用['name']
迭代裏面:
$count = count($_FILES['files'])
for($i=0; $i<=$count; $i++) {
if ($_FILES['files'][$i]['size'])
echo $_FILES['files'][$i]['name']."\n";
}
即使是更容易使用foreach循環:
foreach($_FILES['files'] as $file) {
if($file['size'])
echo $file['name']."\n";
}
使用foreach,無論數組的長度是多少,數組中都會得到5個元素。出於這個原因,數組需要按照有序的順序重新創建。像這裏解釋的http://php.net/manual/en/features.file-upload.multiple.php – Elnoor
您可以使用array_filter了點。您可以過濾數組以獲取上傳文件的輸入。
$uploaded_files = array_filter($_FILES['files'], function($file){
return $file['size'];
});
print count($uploaded_files);
foreach($uploaded_files as $file)
{
//code
}
我可以用它來過濾掉空的文件嗎?對於多個上傳文件數據 – danielad
您可以通過以下方式將文件循環:
$count = count($_FILES['files']['tmp_name']);
for($i=0;$i<$count;$i++) {
$file_name = $_FILES['files']['name'][$i];
$file_type = $_FILES['files']['type'][$i];
$file_error = $_FILES['files']['error'][$i];
$file_size = $_FILES['files']['size'][$i];
}
所以,我從你的問題的理解,$_FILES['files']
是上傳文件的數組,這樣你就可以像數組行動吧。嘗試foreach
foreach ($_FILES['files'] as $file){
// now do something with $file
move_uploaded_file($file["tmp_name"],"upload/" . $file["name"]);//e.g uploading it
}
這將從表單中可用的所有文件循環。我只想從用戶選擇的文件中循環。 –
嘗試沒有'[名]'像'計數($ _ FILES [ '文件'])',而不是'計數($ _ FILES [ '文件'] [名])' – Bora
可能HTTP的重複:// foreachoverflow.com/questions/5444827/how-do-you-loop-through-files-array –