我上传了几个文件,其中包含由PHP脚本处理的表单。有几个“类别”我需要处理不同的方式。换句话说,我需要将$ _FILES数组中的一些文件存储到某个地方,而将其他文件存储在其他地方。
所以我需要的是不是$ _FILES ['filename_form'] 的所有文件(数组键)可以分开存储/使用。
我之所以需要这个,是因为上传的文件数量是动态的,但总是 $ _ FILES ['filename_type1'] 或 $ _ FILES ['filename_type2 _ *] 其中*是从表单输入更多文件时动态增加的数字
可能是一个非常简单的解决方案,要么我太累了,要么我一直在盯着代码,但我知道的是我明天早上需要一个解决方案,所以它的时间敏感= P
感谢我能得到的所有帮助。 谢谢!
答案 0 :(得分:4)
$files = array();
$filenames = array();
foreach($_FILES as $name => $fileInfo)
{
if($name != 'filename_form')
{
$files[$name] = $fileInfo;
$filenames[] = $name;
}
}
答案 1 :(得分:0)
怎么样:
foreach ( $_FILES as $key => $value )
if ( preg_match ( '/type2/', $key ) )
// do something with the type2
else if ( preg_match ( '/type1/', $key ) )
// do something with these
答案 2 :(得分:0)
<?php
foreach ($_FILES as $key => $value) {
$a = explode('_', $key);
$defaultDir = 'myDefaultDirOrPathOrWhatever';
if ($a[1] == 'type2') {
$defaultDir = 'myOtherDirWhenMultipleFiles';
$incrementPassed = $a[2];
}
if (isset($incrementPassed)) unset($incrementPassed);
}
答案 3 :(得分:0)
这是另一种方式
$keys = array_keys($thearray);
$filteredArray = array_filter($keys, 'fiterKeys');
function filterKeys($item) {
if($item != 'valuetocheck') return true;
else return false;
}
答案 4 :(得分:0)
$type1_files = array(); // Array of files of first type
$type2_files = array(); // Array of files of second type
$underfined_files = array(); // Array of files of unnormal type (who knows :-P)
foreach($_FILES as $name => $value){
if($name == 'type1'){
$type1_files[] = $value;
}
elseif($name == 'type2'){
$type2_files[] = $value;
}
else{
$undefined_files[] = $value;
}
}
在foreach之后,您将文件分成数组,您可以根据需要稍后处理
答案 5 :(得分:0)
<?php
$files = array();
foreach ($_FILES as $filename => $fileinfo) {
if (strpos($filename, 'form') !== false) {
$files[$name] = $fileinfo;
unset($_FILES[$name]);
}
}
?>
我能想到的最快的方法应该比以前的任何答案都快。