发新话题
打印

symfony 如何上传文件

symfony 如何上传文件

模版文件

<?php echo form_tag('media/upload', 'multipart=true') ?>
  <?php echo input_file_tag('file') ?>
  <?php echo submit_tag('Send') ?>
</form>

action

public function executeUpload()
{
  $fileName = $this->getRequest()->getFileName('file');
  
  $this->getRequest()->moveFile('file', sfConfig::get('sf_upload_dir').'/'.$fileName);
  
  $this->redirect('media/show?filename='.$fileName);   
}
默认上传到myproject/web/upload/目录下,可以修改config/config.php,改变上传目录

sfConfig::add(array(
  'sf_upload_dir_name'  => $sf_upload_dir_name = 'uploads',
  'sf_upload_dir'       => sfConfig::get('sf_root_dir').DIRECTORY_SEPARATOR.sfConfig::get('sf_web_dir_name').DIRECTORY_SEPARATOR.$sf_upload_dir_name,      
));
显示上传的文件:

<?php echo image_tag('/'.sfConfig::get('sf_upload_dir_name').'/'.$sf_params->get('filename')) ?>
验证(Validation):

methods:
  post:               [file]
  
names:
  file:
    required:         Yes
    required_msg:     Please upload a file
    validators:       myFileValidator
    file:             true
  
myFileValidator:
  class:              sfFileValidator
  param:
    mime-types:      
      - 'image/jpeg'
      - 'image/png'
      - 'image/x-png'
      - 'image/pjpeg'        
    mime-types-error: Only PNG and JPEG images are allowed
    max_size:         2000
    max_size_error:   Max size is 2Mo
一個偽裝成白癡的天纔!

TOP

你好,现在我使用的是symfony1.0.11采用你上传的用例进行了处理,发现该用例中,对于yml文件中max_size项设置不太正确。
max_size:  20000
这样表示20KB,如果是2M的话,需要再追加1个“0”即:
max_size:  204800
不知道是不是我哪个地方不对,请指教。

TOP

发新话题