如何解决如何读取上传的CSV文件而不将其保存在PHP中
基本了解我的文件如何以HTML上传:
<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 举报,一经查实,本站将立刻删除。