我使用一个通过模板部分创建自定义 html 表单的模块
我需要管理一个表单的 4 个文件上传。
在操作中,我像这样提取所有字段数据:
$allData = $request->getParameterHolder()->getAll();
这会给我上传的文件名,但我还需要将该文件保存到上传目录。
我正在尝试像这样绑定表单:
if( isset($customData['getAttachments']) && count($allData)){
$attachments = $formInput->bind($request->getParameter('forms_input'), $request->getFiles('forms_input'));
}
成功生成$attachments
对象。对此的健全性检查是一个var_dump($attachments);die;
转储:
object(FormsInput)#225 (18) { ["_node":protected]=> NULL ["_id":protected]=> array(1) { ["id"]=> string(5) "32171" } ["_data":protected]=> array(6) { ["id"]=> string(5) "32171" ["form_uid"]=> string(32) "aef79b2d47722ca154788cc9c8f8de2b" ["data_array"]=> string(770) "a:20:{s:9:...
如何提取文件并推送到目录。我试过这个:
$file = $attachments->getValue('file');
if($file) {
$filename = sha1($file->getOriginalName()).$file->getExtension($file->getOriginalExtension());
$file->save(sfConfig::get('sf_upload_dir').'/'.$formTitle.'/'.$usrDir.''.$filename);
}
但它抛出了这个错误:
Unknown record property / related component "value" on "FormsInput"
我怎样才能将上传到 sf 目录?
更新
尝试使用 sfValidatorFile 类,但我无法弄清楚如何将 $attachment 对象中的参数传递给它:
$file = new sfValidatorFile();
if($file) {
$filename = sha1($file->getOriginalName()).$file->getExtension($file->getOriginalExtension());
$file->save(sfConfig::get('sf_upload_dir').'/uploadedDir');
}
抛出这个:
Fatal error: Call to undefined method sfValidatorFile::save()