symfony 1.2中将文件上传操作从webRequest对象转到了sfFormProple对象上, 使用save方法会调用proccessUploadFile, 然后调用saveFile
需要在form中声明上传的路径, 这个很重要.
比如我们给file字段增加上传功能, 则应该加上这样一行.
$this->validatorSchema['file']->setOption('path', sfConfig::get('sf_upload_dir'));
或者
$this->validatorSchema['file'] = new sfValidatorFile(array('path' => sfConfig::get('sf_uploads_dir')));
上面的代码可以完成symfony中文件的自动上传功能,symfony1.2的form中还有另外一个很强大的功能, 那就是表单验证, 同样的, 上传文件也是可以使用validator进行验证的, 下面是一个例子.
$this->setValidator('filename' , new sfValidatorFile(array('path' => sfConfig::get('sf_upload_dir'), 'required' => false, 'mime_types' => 'web_images', 'max_size' => SettingPeer::getSetting('shopPicMaxSize'))));
文件上传成功后,在制定存储文件目录会发现文件名发生了变化,请问这是怎么回事·?
有什么方法可以使文件名不变成乱码吗?
Comment 由 Assassinann — 2009-04-02 @ 17:13
这个记不太清楚了,我记得看源码的时候在上传文件的时候有一个钩子用来处理上传的文件用的,关注评论吧,找到了告诉你。
Comment 由 maker — 2009-04-02 @ 17:19
看看这个能不能帮上你
http://www.symfony-project.org/tutorial/1_2/whats-new#chapter_3fb3b0c857177a2b6740a5dcbc0fb8c7_validators
Comment 由 maker — 2009-04-02 @ 17:29
在symfony中我自己写了一个上传功能,但是文件就是上传不到指定的路径啊?默认是到/web/uploads文件中,我采用了默认路径,也不好使。
知道是什么原因吗?谢谢先
Comment 由 duran — 2009-10-19 @ 18:27
这个还真不好说,不清楚你的代码是怎么写的,但是在1.2中按照文章中的写法是没问题的,其他的方法我也试过一些,都不好用。
Comment 由 maker — 2009-10-20 @ 09:46