【发布时间】:2014-08-31 19:28:33
【问题描述】:
由于单个输入,我正在尝试从网络应用程序中的多个 .csv 导入数据,但我在处理 $_FILES 时遇到了困难。
我要做的就是根据文件名将文件分成两个数组。我无法在服务器上上传这些文件。
这是用于上传文件的表单页面中的输入:
<input type="file" name="file[]" id="inputrapports" accept=".csv" multiple="true"/>
在我的操作页面中,我正在这样做:
$files=$_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;
}
}
不幸的是,它不起作用。所以我尝试了这个:
foreach($files['name'] as $f){
echo $f; //I'm getting the name
}
foreach($files as $f){
echo $f['name']; //I'm not
}
我可以使用上面显示的第一次尝试,但在这种情况下,我无法将文件的整个数组放入适当的数组中。
你能解释一下为什么这两次尝试给出不同的答案吗?
你能帮我找到解决办法吗?
提前致谢。
【问题讨论】:
-
$_FILES 的 var_dump 是什么?
-
我用这个来避免每次都写 $_FILES['file']
-
是的,我想是的,但是 var_dump($_FILES) 的输出会有所帮助。
-
这里是:array(5) { ["name"]=> array(1) { [0]=> string(43) "Rapport Quotidien activité 09-07-2014.csv " } ["type"]=> array(1) { [0]=> string(8) "text/csv" } ["tmp_name"]=> array(1) { [0]=> string(23) "/srv/data/tmp/phphwWN6K" } ["error"]=> array(1) { [0]=> int(0) } ["size"]=> array(1) { [0]=> int(291) } }
-
好的,我看到了问题...而不是预期的
$_FILES['file'][0]['name']php 构建$_FILES['file']['name'][0]。