2017-04-25 31 views
2

I'm:fopen()函數:文件名不能爲空具有 <code>ErrorException</code>在<code>FilesystemAdapter.php</code>線146(laravel 5.4)

fopen(): Filename cannot be empty 

使用laravel FilupLoad->store()方法

形式是多部分/形式數據

商店代碼:

if ($request->hasFile('photo') && $request->photo->isValid()) { 

      // dd($request->file('photo')); 
      $path = $request->photo->store('profiles'); 

      $imagen = new Imagen(['url' => $path]); 

      $imagen->save(); 

      $perfil->imagen()->attach($imagen); 
     } 

如果我使用dd($request->file('photo'));並查看文件名

對此有何幫助? 看到FilesystemAdapter.php後,它似乎是getRealPath()的問題,總是返回false。有任何想法嗎?我是新來的PHP

+0

第146行是您向我們展示的11行中的哪一行? – RiggsFolly

+0

是laravel的FilesystemAdapter的一部分。我不認爲我必須改變這一點。我是新來的php – zeuz1983

+0

@RiggsFolly我看着FilesystemAdapter.php,它似乎是getRealPath()的問題,總是返回false。這就是我能找到的。 – zeuz1983

回答

0

最後,我嘗試在另一個PHP安裝相同的代碼和工作。所以可能是在我的php.ini

1

我也有這個問題,我想補充我發現,以防萬一它可以幫助別人。

1)檢查您的php.ini文件,特別是; sys_temp_dir = "/tmp"這應該是能夠留下評論關閉,至少使用PHPv5.6IIS

2)也驗證了應設置的upload_tmp_dir=C:\WINDOWS\temp

3)還需要啓用php_fileinfo進一步擴展,這在windows是extension=php_fileinfo.dll

當你測試,你可以調試輸出是這樣,下面都應該回來true

dd($request->hasFile('my_file'));

dd($request->file('my_file')->isValid());

4)如果你仍然有問題,檢查這些目錄permisssions。

1

這是一個與Internet相關的已知問題用於Windows®的信息服務(IIS)服務器。唯一需要的是 - 爲

Ç權限:\ WINDOWS \ TEMP

,因爲它是在php.ini的PHP7設置爲

upload_tmp_dir

相關問題