gpt4 book ai didi

file-upload - Symfony 文件上传 - "Array"存储在数据库中而不是实际文件名

转载 作者:行者123 更新时间:2023-12-02 00:40:26 26 4
gpt4 key购买 nike

我正在使用 Symfony 1.4.4 和 Doctrine,我需要在服务器上上传一张图片。

我已经这样做了数百次而没有任何问题,但这次发生了一些奇怪的事情:我没有将文件名存储在数据库中,而是找到了字符串“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' );
}
}
}

在绑定(bind)我的参数之前,一切正常,$request->getFiles($form->getName()) 返回我的文件。但之后,$form->getValue('filename') 返回字符串“Array”。

你们有没有遇到过这种情况,或者你们看到我的代码有什么问题吗?

编辑:我添加了一个事实,即我正在嵌入另一个表单,这可能是问题所在(请参阅上面的表单代码)。

最佳答案

好的,我知道了。我没有正确声明我的验证器。

我应该做的是:

$this->setValidator('filename', new sfValidatorFile(array(
'mime_types' => 'web_images',
'path' => sfConfig::get('sf_upload_dir').'/flash',
)));

愚蠢的错误,我希望能帮助那些有同样问题的人。

关于file-upload - Symfony 文件上传 - "Array"存储在数据库中而不是实际文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2737903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com