到目前为止,我还没有在 Symfony 中进行太多文件上传,我正在尝试弄清楚如何在 1.2+ 中进行上传
我可以获取提交给操作的文件并通过以下方式检索它们:
$files = $request->getFiles();
如何获取然后将文件保存到文件系统?除了旧的 1.0 折旧代码之外,我没有看到任何文档。
看起来这已经以某种方式移动到表单系统中,但我没有针对这个一次性页面的特定内容,除了上传一些文件之外什么都不做。
如何将这些文件保存到光盘。
到目前为止,我还没有在 Symfony 中进行太多文件上传,我正在尝试弄清楚如何在 1.2+ 中进行上传
我可以获取提交给操作的文件并通过以下方式检索它们:
$files = $request->getFiles();
如何获取然后将文件保存到文件系统?除了旧的 1.0 折旧代码之外,我没有看到任何文档。
看起来这已经以某种方式移动到表单系统中,但我没有针对这个一次性页面的特定内容,除了上传一些文件之外什么都不做。
如何将这些文件保存到光盘。
如果你不想使用 symfony 表单上传文件,那么下面的代码也可以工作:
foreach($request->getFiles() as $file)
{
move_uploaded_file($file["tmp_name"], $directory . "/" . $file['name']);
}
在动作内部,将参数绑定到表单后:
$file = $your_form->getValue('your_file_field');
$filename = $file->getOriginalName(); //or whatever name
$extension = $file->getExtension($file->getOriginalExtension());
$file->save(sfConfig::get('sf_upload_dir').'/'.$filename.$extension);
顺便说一句,您可以在相应的 Symfony Forms in Action 书中找到 Symfony 1.2 的文档:第 02 章文件上传
ps:不要忘记手动添加enctype="multipart/form-data"
到您的 html 表单中!
谢谢你,朋友。我正在寻找此代码 2 天。即使我正在尝试 symfony,我也是 php 新手。我的 symfony 代码。
$this->filetype = $_FILES['file']['type'];
foreach ( $request -> getFiles () as $file )
{
if(move_uploaded_file ( $file [ "tmp_name" ], sfConfig::get('sf_upload_dir').'/myfile/'. $file [ 'name' ]))
{
$this-setTemplate('success');
}
else
{
$this-setTemplate('failure')
}
}
同样的方式使用$filetype
来检查上传的文件类型。检查 php 文件参考。对于文件类型。享受..
如果您仍在寻找无法使用 $request->getFiles() 访问上传文件的原因,可能是因为您忘记添加enctype="multipart/form-data"
.
实际上,您应该有这样的表格:
<form enctype="multipart/form-data" action="/yourdestination" method="post">
<input type="file" name="somedummyfile"/>
<input type="submit" value="Send"/>
</form>
你的动作应该是这样的:
$dummyfile = $request->getFiles('somedummyfile');
echo $dummyfile['tmp_name']; // Current filepath
echo $dummyfile['name']; // filename
希望能帮助到你 !