在PHP中操作多个文件
由于一次输入,我试图从web应用程序中的多个.csv导入数据,但我很难处理$\u文件 我所要做的就是根据文件名将文件分成两个数组。我无法将这些文件上载到服务器上 这是用于上载文件的表单页面中的输入:在PHP中操作多个文件,php,file,input,Php,File,Input,由于一次输入,我试图从web应用程序中的多个.csv导入数据,但我很难处理$\u文件 我所要做的就是根据文件名将文件分成两个数组。我无法将这些文件上载到服务器上 这是用于上载文件的表单页面中的输入: <input type="file" name="file[]" id="inputrapports" accept=".csv" multiple="true"/> 不幸的是,它不起作用。所以我试了一下: foreach($files['name'] as $f){ echo
<input type="file" name="file[]" id="inputrapports" accept=".csv" multiple="true"/>
不幸的是,它不起作用。所以我试了一下:
foreach($files['name'] as $f){
echo $f; //I'm getting the name
}
foreach($files as $f){
echo $f['name']; //I'm not
}
我可以使用上面显示的第一次尝试,但在这种情况下,我无法将文件的整个数组放入适当的数组中
你能解释一下为什么这两次尝试给出了不同的答案吗
你能帮我找到解决办法吗
提前感谢。解决这一问题的肮脏方法是:
$files = $_FILES['file'];
for($i=0;$i<count($files['tmp_name']); $i++)
{
echo $files['name'][$i];
}
然后开始你的第一次旅行
$q=array();
$c=array();
foreach($files as $file){
if(strtoupper(substr(str_replace(' ','',$file['name']),7,1))=="Q"){
$q[]=$file;
}else{
$c[]=$file;
}
}
$_文件的var_转储是什么?我用它来避免每次写入$_文件['file']是的,我想是的,但是var_转储($_文件)的输出会很有帮助。这里是:数组(5){[“name”]=>array(1){[0]=>string(43)“report quotiden activit”©09-07-2014.csv”}[“type”]=>array(1){[0]=>string(8)“text/csv”}“tmp u name”=>array(1){[0]=>string(23)“/srv/data/tmp/phwwn6k”}[“error”]=>array(1){[0]=>int(0)}[“size”]=>array(1){[0]=>int(291)}好的,我看到问题了。。。与预期的
$\u文件['file'][0]['name']
php构建$\u文件['file']['name'][0]
。关于你的肮脏方式,我想你应该写echo$FILES['tmp\u name'][$i]代码>。但在本例中,我无法匹配字符串的第7个字符。可能是因为Q是第9个字符?不是使用stru replace('''',,$file['name']),7,1
。无论如何,由于多样化数组
函数,它现在可以工作了。非常感谢。
function diverse_array($vector) {
$result = array();
foreach($vector as $key1 => $value1)
foreach($value1 as $key2 => $value2)
$result[$key2][$key1] = $value2;
return $result;
}
$files = diverse_array($_FILES["file"]);
$q=array();
$c=array();
foreach($files as $file){
if(strtoupper(substr(str_replace(' ','',$file['name']),7,1))=="Q"){
$q[]=$file;
}else{
$c[]=$file;
}
}