问题描述
<form method="post" action="/admin/upload">
<input type="file" id="csvFile" name="csvFile">
<input type='hidden' value='{{$crsf}}' name='crsf_token'>
<input type="submit">
</form>
我的路由如下所示(CRSF保护在执行路由功能之前就已完成):
Router::post('/admin/upload',function(Request $r) {
$finfo = new finfo(FILEINFO_MIME_TYPE);
$file &= $r->getFile('csvFile',array('csv')); // returns $_FILES based on MIME type(s).
if(empty($file))
$r->redirect(403); // Request to admin forbidden action
$csv = fopen($file['csvFile']['tmp_name']);
$filteredCols = [];
while (false !== $fields = fgetcsv($csv))
$filteredCols = array_values(array_interesect_key($fields,array_flip(array(1,2,9))));
fclose($csv);
var_export($filteredCols);
});
我遇到的问题是empty($file)
返回true。我尝试var_dump($_FILES)
,但得到PostedArray(0) []
。我的CRSF令牌跨过发布并且可以正常运行,所以为什么文件发布不正确?另外,我可以在此发布的文件上使用fopen
还是首先要保存它? (不是首选选项)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)