Symfony 1.4.4와 Doctrine을 사용 중이며 서버에 이미지를 업로드해야합니다.Symfony 파일 업로드 - 실제 파일 이름 대신 데이터베이스에 "Array"가 저장됩니다.
나는 수백 번 아무런 문제없이이 일을했지만 이상한 일이 발생합니다. 파일 이름이 데이터베이스에 저장되는 대신 "Array"문자열을 찾습니다. 내 형태로
:
$this->useFields(array('filename'));
$this->embedI18n(sfConfig::get('app_cultures'));
$this->widgetSchema['filename'] = new sfWidgetFormInputFileEditable(array(
'file_src' => '/uploads/flash/'.$this->getObject()->getFilename(),
'is_image' => true,
'edit_mode' => !$this->isNew(),
'template' => '<div id="">%file%</div><div id=""><h3 class="">change picture</h3>%input%</div>',
));
$this->setValidator['filename'] = new sfValidatorFile(array(
'mime_types' => 'web_images',
'path' => sfConfig::get('sf_upload_dir').'/flash',
));
내 행동 :
는 여기에 내가 뭘하는지의
public function executeIndex(sfWebRequest $request)
{
$this->flashContents = $this->page->getFlashContents();
$flash = new FlashContent();
$this->flashForm = new FlashContentForm($flash);
$this->processFlashContentForm($request, $this->flashForm);
}
protected function processFlashContentForm($request, $form)
{
if ($form->isSubmitted($request)) {
$form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
if ($form->isValid()) {
$form->save();
$this->getUser()->setFlash('notice', $form->isNew() ? 'Added.' : 'Updated.');
$this->redirect('@home');
}
}
}
모든 게 잘, $request->getFiles($form->getName())
반환, 내 파일을 내 매개 변수를 바인딩하기 전에. 그러나 나중에 $form->getValue('filename')
문자열 "배열"을 반환합니다.
여러분 중 누구에게 일어 났습니까? 아니면 내 코드에 문제가있는 것을 보았습니까?
편집 : 내가 다른 양식을 포함하고 있다는 사실을 추가했습니다 (위 양식 코드 참조)
고마워 아주 도움이되었습니다 ... 귀하의 버전을 사용했을 때 동일한 문제가 있었고 해결되었습니다. : D : P –