2016-11-04 81 views
0

我爲我的項目使用了Laravel 5.2。我需要一些幫助來驗證文件上傳。功能類似於下面,使用Laravel驗證文件類型(音頻/視頻)

  • 的fileType - 音頻/視頻文件
  • file.mp3,file.mp4,file.3gb

所以在提交(通過郵遞員REST客戶端)上述領域我如果fileType是「音頻」,則需要驗證文件是否爲「音頻擴展名(.mp3等)」。

同樣我也需要驗證的視頻擴展名的文件,如果filetype的「視頻(.MP4,.3gb)」

我想這樣做,但有驗證音頻/視頻擴展,不檢查一個選項的fileType如下的價值,

'file' => 'mimes:mp3,mp4,3gb' 

任何人都可以指導我嗎?

+0

只是想知道,您使用的驗證表單請求驗證規則? – shoieb0101

+0

通過郵遞員(RestFul客戶端) –

+0

您正在通過郵遞員檢查API。我問的是你使用formRequest進行驗證,或者你的驗證邏輯是在控制器內? – shoieb0101

回答

1

如果您正在使用的形式要求,嘗試用下面的代碼

public function rules() 
{ 
    $rules = [ 
     'some_field' => 'required', 
    ]; 

    // if fileType is audio 
    if ($this->input('fileType') == 'audio') { 
     $rules['file'] = 'mimes:mp3,mp4'; 
    } 

    //if fileType is video 
    if ($this->input('fileType') == 'video') { 
     $rules['file'] = 'mimes:mp4,3gp'; 

    } 

    return $rules; 
} 

更改字段名和驗證規則按您的要求。

+0

謝謝..讓我試試這個.. –

+0

@VinothBabu工作? – shoieb0101

+0

mp3驗證不起作用。但文本正在工作,如果我添加文本,而不是MP3 :( –

0

可以提供以下支持MP3

$validation_args = [ 
    'file' => 'required|mimes:mpeg', 
];