我正在使用 symfony2 构建多步骤文件上传。
第一个屏幕允许用户上传 CSV 文件。
第二个屏幕允许用户将数据库列映射到 CSV 列。
我的控制器中有两种方法,每个屏幕一种。
file_upload => 第一个屏幕
match_csv => 第二屏
在 file_upload 方法中,我有以下代码:
return $this->redirect($this->generateUrl('match_csv',
array(
'accountId' => $accountId,
'projectId' => $projectId,
'file' => base64_encode( $file->getPathname() )
)
), 301);
在我的match_csv
方法中,我有以下代码:
$file = base64_decode($file);
$csvFile = new \SplFileObject( $file );
$csvFile->setFlags(\SplFileObject::READ_CSV);
我的问题是:
当我将视图从 切换file_upload
到match_csv
时,服务器返回一个错误,指出该文件不再存在。
据我了解,一旦脚本执行停止,PHP 就会删除临时文件。因此,当我在 symfony2 中切换视图时,file_upload 方法停止并且文件被删除。
我的问题是/是:
是否有更好的替代方法可以跨视图共享上传的文件?
自己写一个临时文件,然后在我停止使用它后立即删除它,以便 Symfony2/PHP 不会自动删除它是一个好主意吗?