2017-03-07 128 views
-2

我有一個fieldset正在執行InputFilterProviderInterface。我getInputFilterSpecification功能如下:stream_resolve_include_path返回false?

public function getInputFilterSpecification() { 
    $validator = new \Zend\Validator\File\Extension([ 
     'jpg', 
     'jpeg', 
     'png', 
     'gif', 
    ]); 
    return [ 
     [ 
      'name' => 'logo', 
      'required' => false, 
      'validators' => [ 
       $validator, 
      ], 
     ], 
    ]; 
} 

正如您可以猜到,我試圖驗證由擴展名的文件上傳。

我的問題是驗證是給錯誤消息

文件無法讀取或不存在

展望Extension類我發現造成問題的功能:stream_resolve_include_path($file) 。當我var_dump$file我得到以下輸出:

C:\ WINDOWS \ TEMP \ php6BE7.tmp

所以......爲什麼stream_resolve_include_path未能解決這條道路?我如何解決它?

這當前正在Windows虛擬機上運行。這是問題的一部分嗎?即上述功能僅適用於兼容的操作系統?

回答

0

短期解決方案 - 擴展驗證器並覆蓋isValid函數。

查找行:

if (empty($file) || false === stream_resolve_include_path($file)) {

,取而代之的是:

if (empty($file) || false === is_file($file)) {