我有以下功能定义:
public function save(UploadedFile $file, string $fileSystemName)
{
$fs = $this->fileSystemMap->get($fileSystemName);
$contents = file_get_contents($file->getRealPath());
$filename = sprintf('%s/%s/%s/%s.%s', date('Y'), date('m'), date('d'), uniqid(), $file->getClientOriginalExtension());
$fs->write($fileName, $contents);
}
代码运行时:
的file_get_contents($文件 - > getRealPath());
它抛出错误说:
警告:file_get_contents(/ tmp / phpM9Ckmq):无法打开流:没有这样的文件或目录
请注意,我也尝试使用$ file-> getPathName(),但结果是一样的。
为什么会这样?
谢谢!
答案 0 :(得分:0)
file_get_contents($file->getFile()->getPathname());
答案 1 :(得分:0)
读取上传文件内容的最简单方法是:
public function index(Request $request)
{ $raw='';
if ($request->getMethod() == "POST") {
$files = $request->files->all();
foreach ($files as $file) {
if ($file instanceof UploadedFile) {
$raw .= file_get_contents($file->getPathname());
}
}
}
return $this->render('main/index.html.twig', [
'controller_name' => 'MainController',
]);
}
您的数据将存储在$ raw
答案 2 :(得分:-1)
您可以在UploadFormType中使用Symfony \ Component \ Form \ Extension \ Core \ Type \ FileType作为您的文件
类似的东西:
@click.stop="sayHello"
之后你可以在你的控制器中做这样的事情
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('file', UploadFormType::class);
}
$ file将是\ SplFileInfo的一个实例,您可以使用$ file-> getRealPath()方法。