загрузка изображений laravel — ajax не публикуйте мой файл изображения

Я пытаюсь загрузить изображение из вызова ajax на мой сервер (на laravel).

Это мой код сервера:

if (Input::hasFile('flyer')){
Log::info('WORK!');
$file = Input::file('flyer');
$file->move('uploads', $file->getClientOriginalName());
}

Как вы можете видеть, я настроил протоколирование, чтобы понять, был ли загружен мой файл или нет … но мой файл журнала говорит, что это не …

Код моей формы:

{{ Form::open(array('url' => 'new_event', 'id' => 'newEvent', 'files' => true)) }}
//some fields...
{{ Form::file('flyer', array('class' => 'form-control', 'id'=>'inputImage')) }}
// some other fields
{{ Form::close() }}

и вот мой вызов ajax:

$('#newEvent').submit(function() {
$.ajax({
data: $(this).serialize(),
type: $(this).attr('method'),
url: $(this).attr('action'),
success: function(response) {
$('#content').html(response);
}
});
return false;
});

Наконец, вот мои пост-данные (из консоли Google Dev), когда я публикую свою форму:

_token:bqyiuQwtYEEs0tvhBcndi4ylsVPPi2FpYhGPLxKQ
title:sdfgsdf
description:sdfgsdf
activated_at:23/04/2015
expire_on:24/04/2015
contact:a name
phone:+387646
email:[email protected]
push:1

Как вы можете видеть, нет никакого следа моего файла изображения (листовка) … почему?

1

Решение

Вы не можете отправить изображение, как это, вам нужно enctype="multipart/form-data", попробуйте следующий код.

$('#newEvent').submit(function() {

// need to get form data as below
var formData = new FormData($(this)[0]);

$.ajax({
data: formData,
contentType: false,
processData: false,
type: $(this).attr('method'),
url: $(this).attr('action'),
success: function(response) {
$('#content').html(response);
}
});
return false;
});
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]