2012-08-24 1 views
1

내 파일 업로드에 여러 MIME 형식을 포함하려고합니다. 나는이 같은 시도 : 나는 마임 유형의 모든 유형을 사용하려면이 donotSymfony : 여러 MIME 형식 허용

$this->validatorSchema['filename'] = new sfValidatorFile(array(
    'required'  => false, 
    'path'   => sfConfig::get('sf_upload_dir'), 
    'mime_categories' => array(
    'application' => array(
     'application/pdf' 
    ), 
    'web_images' => array(
     'image/jpeg', 
     'image/pjpeg', 
     'image/png', 
     'image/x-png', 
     'image/gif', 
    ) 
), 
    'mime_types' => array('application', 'web_images') 
)); 

내 업로드에 포함 할을하고도 나는 하나의 배열에 카테고리/유형을 병합 할이 donot. 어느 누구도 전에이 문제에 직면했거나 이것이 일어나는 이유를 알고 있습니까?

$mimeTypes = is_array($this->getOption('mime_types')) ? $this->getOption('mime_types') : $this->getMimeTypesFromCategory($this->getOption('mime_types')); 

sfValidatorFile.class.php에서이 배열을 받아들이는 것 같다 내가 바로 그 일을하고있다처럼 보인다. 내가 여기서 뭔가를 놓치고 있니?

+0

어떤 MIME 유형을 허용 하시겠습니까? – j0k

+0

pdf 및 이미지 지금 내 관심사는 어떻게 가능하게하고 싶습니다. –

답변

3

sfValidatorFile의 문서는 말한다 :

mime_types: Allowed mime types array or category (available categories: web_images)

(sfValidatorFile.php, 27 행). mime types 배열 OR (하나) 카테고리 (카테고리 배열 아님)를 허용합니다. 이것이 코드가 작동하지 않는 이유입니다.

0

당신은 많은 것을 실수로 혼합했습니다. 단순하게 유지하십시오. 원하는 모든 mime_types에 mime_types 매개 변수를 지정할 수 있습니다.

예를 들어, 여기에 내가 이미지의 모든 종류의 또는 PDF 파일을 받아 :

$mime_types = array(
    'image/jpeg', 
    'image/pjpeg', 
    'image/png', 
    'image/x-png', 
    'image/gif', 
    'application/pdf', 
); 

$this->validatorSchema['filename'] = new sfValidatorFile(array(
    'mime_types' => $mime_types 
), array(
    'invalid' => 'Invalid file.', 
    'required' => 'Select a file to upload.', 
    'mime_types' => 'The file type is incorrect.' 
)); 

편집 :

좋아, 난 당신이 원하는 것을 참조하십시오. 코드가 거의 맞지만 mime_types 검사가 수행되는 방식과 관련하여 배열을 주면 범주 배열이 아닌 mime_types 배열임을 의미합니다. 배열을 지정하지 않으면 마임 카테고리라는 의미입니다.

symfony의 버그처럼 들리지만, 병합 배열을 제공 한 다음 mime_types 옵션에 전달해야합니다.

+0

이것은 내가 찾던 해결책이 아닙니다. 이미 카테고리/유형을 단일 배열로 병합하고 싶지는 않습니다. 왜 이것이 작동하지 않는지 알고 싶었습니다. –

+0

+ web_images mime-category가 이미 기본적으로 유효성 검사기에 있습니다. 단순히 application/pdf의 배열을 범주로 추가 한 다음 web_images와 같이 mime_type에 추가해야합니다. 'mime_types'=> array web_images에 대한 카테고리 목록을 리디렉션하지 않고 ('application', 'web_images') –