2015-02-18 2 views
1

Для простоты, я это на мой взгляд:

{{ Form::open(['route' => 'files', 'method' => 'POST', 'files' => 'true']) }} 
{{ Form::file('file') }} 
{{ Form::submit(); }} 
{{ Form::close() }} 

И в мой контроллер:

return Response::json([$_FILES, print_r(Input::file('file'),1)]); 

Это ответ я получаю, когда я представить:

[ 
    { 
     "file": { 
      "name": "sample.jpg", 
      "type": "image/jpeg", 
      "tmp_name": "/tmp/phpItZT7K", 
      "error": 0, 
      "size": 17645 
     } 
    }, 
    {} 
] 

единственные реальные решения я сталкивался при поиске является ENCTYPE, что у меня на для m через атрибут 'files' в форме :: open. На данный момент я понятия не имею, что происходит. Это не приложение, но это все еще раздражает. Если бы кто-нибудь мог пролить свет на это, я был бы очень доволен.

+0

В чем проблема, с которой вы сталкиваетесь ... ?? – Vagabond

+0

Input :: file() не возвращал данных. Нет объекта Uploaded или ничего. С тех пор он волшебным образом начал работать снова между обновлениями без моего изменения какого-либо кода, который был уместным, или, как я полагаю. – Nathan

+0

У нас такая же проблема. $ _FILES показывает массив с файлом, но Input :: file ('file') ничего не показывает. –

ответ

2

Вы не уточнили, какова фактическая проблема, но я предполагаю, что Input::file() не проходит через JSON. Это потому, что Input::file() возвращает symfony object, который не может быть закодирован, поэтому вам нужно будет создать свой собственный массив.

$file = Input::file('file'); 
$output = ['name' => $file->getClientOriginalName(), 'size' => $file->getClientSize()]; // etc 
+0

Я использовал print_r (Input :: file ('file'), 1) для печати на выходе JSON, и он всегда был пустым. Я просто забыл включить это в сообщение. – Nathan

+0

Попробуйте использовать класс журнала для регистрации объекта и просмотра событий. Вы на самом деле нажимаете кнопку или используете AJAX? – fire