2014-09-19 68 views
7

我有一個表格字段上傳圖片,這是我與「文件」打開=>真實的,就像這樣:Laravel輸入:: hasFile(「圖像」)返回false,即使文件被上傳

{{ Form::label('image', 'Image') }} 
{{ Form::file('image') }} 

在我控制我要檢查,如果一個文件被上傳,並用它做什麼:

if (Input::hasFile('image')){ 
     $in_path = 'img/'; 
     $in_extension = Input::file('image')->getClientOriginalExtension(); 
     $filename = Input::get('name').".".$in_extension; 
     Input::file('image')->move($in_path, $filename); 
     $user->image = $filename; 
    } 

但輸入:: hasFile始終返回false,我不知道爲什麼。
有沒有人有想法?

EDIT!:

Input::file('image'); 

結果:

Symfony\Component\HttpFoundation\File\UploadedFile Object 
(
[test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
[originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => test.JPG 
[mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => application/octet-stream 
[size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0 
[error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 1 
[pathName:SplFileInfo:private] => 
[fileName:SplFileInfo:private] => 
) 

我曾與另一張照片爲其他用戶身邊測試,能正常工作。我不明白爲什麼這是爲一些用戶和其他一些用戶工作。
有沒有可能是某種不接受的圖片?

+0

該文件存在?它上傳了嗎?你可以發佈'Input :: file()'裏面的內容嗎?使用'dd()'作爲var_dumping。 – 2014-09-19 08:18:47

+0

我編輯了我的問題! – jrenk 2014-09-19 08:25:05

+1

我解決了什麼問題。代碼很好,但問題是一些圖片很簡單。 – jrenk 2014-09-19 13:58:51

回答

2

我解決什麼是錯的。 代碼很好,但問題是一些圖片很簡單。

編輯:
由於不必驚慌指出,編輯upload_max_filesize就可以解決問題。

+1

爲什麼大圖片返回hasfile() - > false? – Jorre 2015-07-10 16:28:39

+0

@Jorre我無法回答這個問題......但是所有的東西都能在較小的照片上工作。 – jrenk 2015-07-15 12:52:40

+0

僅僅因爲它很短,所以這不是更好的評論。這是答案,它是完全有效的。我遇到了同樣的問題,並得到相同的解決方案。增加'upload_max_filesize'只是有點照顧它。 – 2016-07-17 21:47:06

8

你如何打開你的表單?如果你希望你的形式接受的文件,你需要這樣打開它就像這樣:

echo Form::open(array('url' => 'foo/bar', 'files' => true)) 

Opening a form in the Laravel Docs

+0

是的,我忘了提到我已經做到了。 – jrenk 2014-09-19 08:12:25

2

我有同樣的問題,我檢查了我的代碼,發現我早已不是ENCTYPE =「的multipart/form-data的」標題的形式,希望這個大疏忽幫助任何人

相關問題